我有时会读到OnDisconnect
(服务器端),可以绕过(应用程序回收等)。
在某些情况下,不会调用OnDisconnected方法 当服务器关闭或App Domain被回收时。
所以我问:
当用户连接时,我会为他生成token
,并将其保留在用户cookie
中,并且在调用OnConnect
时,我会附加connectionId
该令牌
(与调用onDiconnect
的方式相同,我在dateDisconnected
设置了一个值
这也将支持2个已连接的用户(相同的浏览器)
示例:
示例:
id tokenId ConnectionID DateCreated dateDisconnected
----------------------------------------------------------------------------------------------
1 500 {1234-1234} 06-07-2013 null
2 500 {5432-5432} 06-07-2013 null
问题在于:
如果用户已登录会发生什么(所以我在登录时在我的数据库中写这个用户),做一些聊天,然后服务器重新启动?
客户端将尝试重新连接,30秒后它将停止。
但,当服务器启动时(一小时后) - 我仍然在我的数据库中记录了用户。他不。 (好吧,无论如何都没有那个连接ID ......)
我该如何解决这类问题?
答案 0 :(得分:1)
解决此问题的最佳方法是在应用程序启动时将所有人都记录下来,在您的情况下,无效/删除所有已登录的令牌行。因此,无论何时服务器启动,应用程序都处于新状态,没有人登录。