1

Azure Redis キャッシュを使用した Servicestack ServerEvents に関する質問..

サーバー コード: Global.asax ファイルの Configure メソッドの下にこれらの行があります。

Plugins.Add(new ServerEventsFeature { 
OnConnect = (res,httpReq) => res.Publish("cmd.onConnect","Message on connect") ,
OnCreated = (res,httpReq) => res.Publish("cmd.onConnect","Message on create"), 
  ...I have custom message for OnSubscription and OnPublish as well
})

**var redisHost = AppSettings.GetString("RedisHost");
container.Register<IRedisClientsManager>(
    new RedisManagerPool(redisHost));
container.Register<IServerEvents>(c => 
    new RedisServerEvents(c.Resolve<IRedisClientsManager>()));
container.Resolve<IServerEvents>().Start();**

以下は、redis接続用にweb.configにある値の形式です

add key="RedisHost" value="passKey@Hostname:6380?ssl=true"

クライアントコード:

ServerEventConnect connectMsg = null;
var msgs = new List<ServerEventMessage>();
var commands = new List<ServerEventMessage>();
var errors = new List<Exception>();

var client = new ServerEventsClient(baseUri,"home") {
OnConnect = e => connectMsg = e,
OnCommand = commands.Add,
OnMessage = msgs.Add,
OnException = errors.Add,
}.Start();

var connectMsg = client.Connect();

var joinMsg = client.WaitForNextCommand();

connectMsg.Wait();//It gets connnected
joinMsg.Wait(); //When I debug, it is getting lost on this line. I don't get any error message!

上記の Global.asax でマークされたRedis 登録を削除すると(つまり、デフォルトのオプションである MemoryServerEvents)、うまく機能します。任意の提案、アイデアは非常に役立ちます。ありがとうございました

4

1 に答える 1