【问题标题】:Test Azure SignalR connection on server在服务器上测试 Azure SignalR 连接
【发布时间】:2024-01-05 20:18:01
【问题描述】:

在 Asp.net core 3 Web 应用程序中,是否可以测试服务器与 Azure SignalR 服务的连接?

是否有推荐的模式来处理服务器到 SignalService 的连接问题,例如在未连接时尝试发送和/或在遇到断开状态后重新连接(如果可能/需要)?

【问题讨论】:

  • 没有解释的否决票是没有帮助的。你能详细说明一下吗?

标签: azure signalr signalr-hub asp.net-core-signalr azure-signalr


【解决方案1】:

您可以使用 Azure Functions 测试服务器与 Azure SignalR 服务的连接,例如:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-signalr-service

关于连接性:

当应用服务器启动时,Azure SDK 在后台启动 启动与远程 Azure SignalR 的服务器连接。如所述 在 Azure SignalR 服务的内部,Azure SignalR 路由传入 客户端流量到这些服务器连接。一旦服务器连接 被丢弃,它所服务的所有客户端连接也将被关闭。

由于应用服务器和 SignalR 服务之间的连接是 持久连接,他们可能会遇到网络连接 问题。在 Server SDK 中,我们有 Always Reconnect 策略到服务器 连接。作为最佳实践,我们还鼓励用户添加 以随机延迟时间连续重新连接到客户端的逻辑 避免同时向服务器发出大量请求。

https://github.com/Azure/azure-signalr/blob/dev/docs/tsg.md#server-connection-drop

【讨论】:

  • 好的...所以听起来没有直接的方法可以查看连接对象或某种类型的属性(例如,您在原始套接字上的方式)来确定连接状态.听起来它更像是“服务器 sdk 将尽一切努力保持连接性,因此只需在异常发生时处理它们,并将它们视为暂时的”)。这样说公平吗?