我有一个websocket基础网络应用程序,我经常犹豫要部署,因为部署将杀死所有连接强制客户端重新连接。我目前没有内置的漂亮的离线同步功能,但我仍然宁愿不依赖它。
对于部署,我计划查看hipache并在服务器更新时将服务器撤出。这不会处理其中一个服务器实例崩溃而其他服务器实例崩溃的情况并且正在运行。
他们的任何经证实的技术都是他们处理这个问题吗?
答案 0 :(得分:0)
您应该能够在客户端侦听error
或close
事件,并根据需要重新启动套接字。这会解决你的问题吗?
答案 1 :(得分:0)
您可以使用Kaazing以可扩展的方式部署socket.io。 Kaazing支持的群集允许您热插拔群集中的网关。我们的一些客户配置群集双dmz来管理部署。此设置的最佳部分是允许任何网关重新部署,客户端可以正常尝试连接到当前可用的连接路径。这既安全又可扩展。
额外的好处是,如果你将socket.IO的传输切换到websocket,Kaazing也会处理仿真,比socket.io更进一步提供不依赖于任何类型的仿真轮询并提供仿真,一直回到Internet Explorer版本6。
在大批量生产方面,最好以稳健的方式处理集群和负载平衡。
如果您决定尝试此操作,请确保更改socket.io传输以使用ws并在客户端的Kaazing库之上运行它。在服务器端,您需要做的就是代理与Node.JS的连接。可以编写额外的适配器来利用代理和socket.IO在每个网关后面实现更多负载平衡,因此多个节点可以在给定网关上循环连接。