我得到了同一个Nodejs应用程序在一个网站上运行的多个实例。我使用websocket
假设客户端连接到实例#1。我想把他转到二号案件。
我正在做的是实例#1发送数据到Redis DB,然后实例#2得到它。但是如何将客户机重定向到另一个实例呢?
你可以试试socket.io
,它可以解决你的问题
使用npm install socket.io
安装此包,并进入http://socket.io/学习文档
我很确定你不能将一个打开的套接字从一个节点进程传递到另一个节点进程。
如果你有一种从外部访问特定实例的方法(使用不同的端口,ip或dns),你可以在握手时路由套接字连接(使用http重定向)或在连接建立后使用客户端将使用的特殊事件断开连接并重新连接到另一个实例
您需要断开与#1实例的连接,并连接到#2实例。没有办法实现软切换,尽管您可以通过在客户端编写包装器以某种方式模拟它,该包装器将从#1断开连接并重新连接到#2。如果您使用负载均衡器,只需断开客户端或服务器端(假设您停用#1实例)并让客户端重新连接。
在套接字中有前端和服务器端。io,在两端之间,您应该注册事件,在服务器端,您应该注册客户端事件:发出在客户端注册的服务器事件,并使用广播。Emit向其他实例发送消息,同样在客户端,您应该注册服务器事件:发出具有回调函数