Javascript NodeJS:将客户端重定向到另一个工作进程/实例

Javascript NodeJS:将客户端重定向到另一个工作进程/实例,javascript,node.js,redirect,websocket,instance,Javascript,Node.js,Redirect,Websocket,Instance,我在一个网站上运行了同一个Nodejs应用程序的多个实例。我使用websocket 假设客户端连接到实例#1。我想把他转到实例2 我所做的是实例1将数据发送到Redis DB,然后实例2获取数据。但是如何将客户端重定向到其他实例?您可以尝试socket.io,它可以解决您的问题 使用npm install socket.io安装此软件包,然后转到学习文档我很确定您无法将打开的套接字从一个节点进程传递到另一个节点进程 如果您有从外部访问特定实例的方法(使用不同的端口、ip或dns),您可以在握手时

我在一个网站上运行了同一个Nodejs应用程序的多个实例。我使用websocket

假设客户端连接到实例#1。我想把他转到实例2


我所做的是实例1将数据发送到Redis DB,然后实例2获取数据。但是如何将客户端重定向到其他实例?

您可以尝试
socket.io
,它可以解决您的问题


使用
npm install socket.io
安装此软件包,然后转到学习文档

我很确定您无法将打开的套接字从一个节点进程传递到另一个节点进程


如果您有从外部访问特定实例的方法(使用不同的端口、ip或dns),您可以在握手时路由套接字连接(使用http重定向)或者在使用客户端将用于断开和重新连接到其他实例的特殊事件建立连接之后。

您需要断开与#1实例的连接,然后与#2实例的连接。虽然您可以通过在客户端编写一个包装器以某种方式模拟软切换,这将断开与#1的连接并重新连接到#2,但您无法实现软切换。
如果您使用负载平衡器,只需断开与客户端或服务器端的连接(假设您将#1个实例停止旋转),然后让客户端重新连接即可

socket.io中有前端和服务器端, 在两个端之间,您应该注册事件,在服务器端,您应该注册客户端事件:在客户端注册的发出服务器事件,并使用broadcast.emit向其他实例发送消息,
同样在客户端,您应该注册服务器事件:发出具有回调函数的客户端事件

我已经使用了
socket.io
。这对重定向websocket有什么帮助?socket.io中有前端和服务器端,我想我们讨论的不是同一类型的实例。Broadcast.emit将消息发送到其他客户端,而不是其他实例。Nodejs实例是同时运行的网站的两个副本,物理上是分开的。