我们在Azure上托管了SignalR服务。
出于技术原因,对于我们而言,保持客户端与主机之间尽可能稳定的连接至关重要。而且正在发生的是,在相对随机的时间间隔内,一些客户端断开了连接。我们知道,这与客户端的Internet连接无关。
因此,问题是,如何确定断开连接的原因。 我们的SignalR集线器实现重写'OnDisconnectedAsync'。并且该方法具有“ Exception exc”参数。不幸的是,每次触发它,exc总是为空(我希望在那里找到断开连接的详细信息)。
其他详细信息: 我们在服务器端使用以下SignalR软件包: Microsoft.AspNet.SignalR(2.4.0) Microsoft.Azure.SignalR(1.0.5)
在客户端,我们使用“ Microsoft.AspNetCore.SignalR.Client.Core”(1.1.0)
我们还检查了Azure SignalR(单元)上是否有足够的资源
以下是用户断开连接时的日志(在OnDisconnectedAsync之后发生): 2020-03-15 11:38:07.391 +00:00 [Debug] Microsoft.AspNetCore.SignalR.HubConnectionHandler:OnConnectedAsync结尾。 2020-03-15 11:38:07.391 +00:00 [Debug] Microsoft.Azure.SignalR.ServiceConnection:将关闭连接消息发送到GFf8suySt2eMsOCLuYg0-wbb16618b1的服务。 2020-03-15 11:38:07.391 +00:00 [Debug] Microsoft.AspNetCore.Http.Connections.Client.Internal.WebSocketsTransport:从应用程序接收到消息。有效负载大小:36。 2020-03-15 11:38:07.393 +00:00 [Debug] Microsoft.AspNetCore.Http.Connections.Client.Internal.WebSocketsTransport:收到消息。类型:二进制,大小:37,EndOfMessage:真。 2020-03-15 11:38:07.393 +00:00 [Debug] Microsoft.Azure.SignalR.ServiceConnection:从服务12aa875c-a5b6-4842-8bc1-2d67e7ab30f6接收了37个字节。 2020-03-15 11:38:07.393 +00:00 [Debug] Microsoft.Azure.SignalR.ServiceConnection:连接GFf8suySt2eMsOCLuYg0-wbb16618b1已结束。
答案 0 :(得分:1)
当客户端连接到Azure SignalR时,客户端和Azure SignalR之间的持久连接有时会由于不同的原因而断开。本节描述了导致这种连接断开的几种可能性,并提供了有关如何确定根本原因的指导。
从客户端看到的可能错误:
根本原因:
在各种情况下,客户端连接可能会断开:
请参阅https://github.com/Azure/azure-signalr/blob/dev/docs/tsg.md#client-connection-drops