1

ConnectionIdページが更新されたときに保持するにはどうすればよいですか? IConnectionIdPrefixGeneratorが見つかりません。ConnectionIdクライアント側にCookie ( を含む) を保存しました。どこに置けばいいですか?

私は方法を持っています:

public void Connect(string username, string password, string xmppDomain)
{
    XmppClient xmppClient = XmppClients[Context.ConnectionId];

    xmppClient.Username = username;
    xmppClient.Password = password;
    xmppClient.XmppDomain = xmppDomain;
    xmppClient.Status = "Online";
    xmppClient.Open();
}

このコードを使用して、保存された接続 ID を に配置できますContext.ConnectionIdか?

HttpCookie myCookie = HttpContext.Current.Request.Cookies["ConnectionId"];
Context.ConnectionId = myCookie.ToString();

また、すべてのページの更新を呼び出す jQuery コードもあります。

$.connection.hub.start().done(function () {
    matrixHub.server.connect(xmpp_user, xmpp_password, xmpp_host);
});

このコードを変更して永続的に使用するにはどうすればよいConnectionIdですか? Matrix XMPP SDK、ASP.NET MVC C#、および IIS を使用しています。

4

1 に答える 1

1

ページを更新すると、既存の接続が切断され、新しい接続 IDで新しい接続が確立されます。この動作は変更できません。接続 ID を Cookie に保存しても、接続が切断されるとサーバーはその接続を忘れてしまうため、役に立ちません。ASP.NET MVC のセッション管理メカニズムまたはカスタム Cookie を使用して、ユーザーを接続 ID に関連付ける必要があります。

于 2013-04-08T11:53:24.767 に答える