【发布时间】:2015-10-19 13:01:33
【问题描述】:
我正在尝试了解如何最好地设计基于 IIS/ASP.NET 的 websocket 应用程序,特别是关于并发限制。
我已阅读 IIS/ASP.NET 上有关“并发 Websocket 连接”以及如何调整各种值的所有文献 - 但是,在谈到 Websocket 时,“并发”的定义是什么? 如果我打开了一个 websocket 并且它处于空闲状态,那是“使用”连接吗?空闲的 websocket 是否计入连接使用总数,还是仅在发送/接收消息时才计入?
我希望在任何时候打开非常多(成千上万)的 websocket,但是发送的消息很少,可能每分钟几条,它们将始终是服务器->客户端(并且单个特定的客户端,而不是广播)。这种安排是否/应该引导我走上任何特定的实施路线?
看来 SignalR 集线器可能是矫枉过正,我不需要不支持 websockets 的客户端的后备,我只需要维护每个客户端连接的句柄,这样当我的系统“决定”发送消息到一个特定的客户端,它可以适当地路由它。
我引用的文档:
- https://github.com/SignalR/SignalR/wiki/Performance
- http://www.asp.net/signalr/overview/performance/scaleout-in-signalr
谢谢
【问题讨论】:
-
我很确定 Web 套接字在空闲时使用 TCP/IP 连接 - 这样他们就可以将数据推送回客户端。您能否提供有关并发 Websocket 连接的文档的参考?
-
您将使用什么协议? UDP 还是 TCP?
-
@ThomasWagenaar Websocket 仅支持 TCP,不是吗?我想知道WebRTC这里有没有应用...