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();
}

我可以使用此代码将保存的 connectionid 放入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 回答