我正在使用 SignalR 的最新版本,它很棒。但是,我最近遇到了一个有趣的扩展问题:似乎 SignalR 在查询字符串中从客户端发送了所有客户端组。我的系统要求一个人加入许多组,这些组代表用户订阅的所有项目,并接收其中任何一个的通知。
大量组(以及我使用 GUID 作为 id)导致查询字符串达到其最大大小,并且 SignalR 停止工作。
这是 Fiddler 在请求网络表单中显示的内容(对 Azure 错误使用长轮询):
transport longPolling
connectionId bbed6f35-8379-4be3-ac28-ef3e618382ae
connectionData [{"name":"jethub"}]
messageId 85
groups ["JetHub.f9f81bcc-8417-46bd-bae5-c4134972601d","JetHub.5139a8de-04c2-48da-9427-39666e52fabd","JetHub.6b12e333-4d22-47c3-8587-7a9ad5026184","JetHub.252ea279-7a71-40e7-b03c-7d63e69f07ab","JetHub.a4843a77-1e6d-4693-b3de-b392ef465410","JetHub.27feb53a-3c2d-4b11-92f7-dbdffb874b25","JetHub.8840dfcf-e6be-4b72-965b-b282a60446e8","JetHub.bf7d3301-6fc0-4499-bee8-fe22f1bc2281","JetHub.655cba0e-7f72-402c-b80b-dcb740546163","JetHub.85d817e2-67a3-4291-b564-5320598339f6","JetHub.e3079263-3f6e-4a54-ad88-0dfc5dd2ce18","JetHub.33f00a67-9b05-4293-8119-4617e2fed9b0","JetHub.6323cfe8-fb81-4716-b553-79b9d72641a5","JetHub.b4359f8a-030a-4ac9-aacd-c05b42163bcc", ... many more]
我知道我可以增加 IIS 中的查询字符串大小,但是有没有更好的方法来管理组,或者我应该尝试创建我的服务器端分组方案并分别广播到每个客户端?PersistenConnections 可以在这方面提供帮助吗?
谢谢。