一般来说,有几种途径可以将WebSocket功能集成到技术堆栈中。
第一种选择是从头开始构建基于 WebSocket 的消息传递解决方案,并根据偏好对其进行定制。例如,DAZN 使用 WebSocket 协议设计了一个自定义解决方案,用于向数百万用户广播消息。
另一种选择是使用开源技术作为基于 WebSocket 的消息传递层的主干。http://Socket.IO 是一个框架,在原始 WebSocket 之上提供功能,例如回退支持、自动重新连接和发布/订阅消息传递(房间)。一种常见的方法是将 http://Socket.IO 与 Redis 发布/订阅相结合,在不同的进程或服务器中运行多个 http://Socket.IO 实例,并在节点之间传递事件。
但是,仍有一些限制需要克服,例如缺少消息排序、本机安全性有限以及单区域设计,这使得大规模将用于生产就绪系统变得具有挑战性。