我试图在多台服务器上使用socketio,在整整一周的时间里,我在不同的平台上尝试了不同的解决方案,但所有这些都不起作用。
在我的项目中,我使用nginx负载平衡和iphash来保持客户端在同一台服务器上,并使用redissocketio适配器向所有套接字广播。
我也尝试了这些项目,看看它是否有效,并了解它是如何工作的,但这个所谓的现成项目也不起作用。
https://github.com/h4t0n/socket.io-redis-appsample
还有这个
https://github.com/evilstudios/chat-example-cluster
我试过在windows和linux上使用redis,但没有区别。
我读到关于我们需要使用"transports:['websocket']"的不同问题,有些人说这需要在客户端上完成,有些人则在客户端和服务器上完成,我尝试了两种解决方案,但都不起作用。
我没有收到错误或警告,事件只是没有发送到其他服务器上的套接字。
看,这是由于版本之间的不兼容或类似的原因。我更新了socket.io及其工作
我大约在6个月前开始开发我的应用程序,当时上一个版本是1.4.8,所以我现在使用这个版本,我把它更新到1.7.2,它可以工作。
关于socket.io-redis,我本周刚刚安装了它,所以我使用的是2.0.1 的最后一个版本
看起来在1.4.8和1.7.2之间发生了一些重要的变化。