我正在尝试学习和理解如何使用 websockets。我注意到我看到的每个教程和示例都有 websocket 的 Holder 类注册为单例。
为什么每个连接都有自己的处理程序?我认为这将使处理并发数据变得更容易。例如,多个用户同时发送消息的聊天应用程序,或多个并行聊天室等。
对我来说,这似乎是一个瓶颈,当服务器从 1 个客户端接受数据时,所有其他连接都必须等待。还是我搞错了?
在 C# 中的大多数 WebSocket 示例中,使用单例来管理连接,以使事情变得更简单,并有一个管理所有连接的中心点。但是,这并不意味着所有连接都必须相互等待。 WebSockets 并发工作,这意味着当消息来自一个客户端时,服务器可以处理它而不会阻塞其他连接。使用单例只是为了更好的集中管理,而不是造成其他连接的延迟或阻塞。