如何在页面刷新时保留ConnectionId
?找不到IConnectionIdPrefixGenerator
。我在客户端保存了一个cookie(包含ConnectionId
)。我应该把它放在哪里?
我有方法:
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。
答案 0 :(得分:1)
刷新页面时,现有连接将断开连接,并使用新连接ID 建立新连接。此行为无法更改。将连接ID保存在cookie中无济于事,因为服务器在断开连接后会忘记连接。您应该使用ASP.NET MVC中的会话管理机制或自定义cookie将用户与连接ID相关联。