Nic*_*ick 10 c# signalr signalr-hub
我正在使用SignalR(0.5.3)集线器作为聊天应用程序,每次击键都发送到服务器(保存在数据库中),中继到所有客户端,并返回一个返回值(各种字符串标记)服务器.
它工作正常,直到应用程序池循环,然后它停止将键击中继到所有客户端(因为我猜想内存服务器状态丢失),并且服务器也不返回任何值.此时,我认为通过SignalR的所有请求都由IIS排队,然后在应用程序池被回收后进行处理.
我的问题是如何处理这种情况,以便所有客户端都知道由于应用程序池回收而导致服务器不可用/延迟,通知用户等待一段时间,然后在重新连接时恢复操作?
有两个选择。
对于0.5.3,您可以检测客户端何时进入“重新连接”或“断开连接”状态,并通知用户服务器出现问题。请记住,在大多数情况下,如果服务器刚刚消失,客户端实际上不会知道它已断开连接。
要么
如果您等待下一个版本(1.0alpha),我们将为您处理大部分工作。如果没有服务器,我们将触发一个onConnectionSlow事件,该事件将导致客户端转变为“重新连接”(如果未收到任何信息)状态,直到服务器重新联机。客户端还将知道服务器是否会在应用程序池回收等极端情况下消失(我们正在添加此功能)。
希望这可以帮助!