1

我读过OnDisconnect服务器端)有时可以绕过(应用程序回收等)。

OnDisconnected 方法在某些情况下不会被调用,例如当服务器关闭或应用程序域被回收时。

所以我问:

当用户连接时,我为他生成 a token ,将其保存在用户cookie中,当OnConnect被调用时,我将 aconnectionId与该令牌附加在一起。

(与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......)

我该如何解决这种问题?

4

1 回答 1

1

解决此问题的最佳方法是在应用程序启动时注销所有人,也就是在您的情况下使所有登录的令牌行无效/删除。因此,每当服务器启动时,应用程序就处于没有人登录的全新状态。

于 2013-07-07T18:12:41.767 回答