【发布时间】:2017-09-05 04:00:51
【问题描述】:
我们正在尝试找到解决 websocket 负载平衡问题的最佳方法。
Websocket 最初可以连接到任何服务器,该服务器将运行一些逻辑,然后如果需要它会将客户端“重定向”到适当的服务器。
socket.io/engine.io 中有没有办法重定向/转发连接?
类似:
io.use(function(socket){
// ... logic
if(logic === true){
socket.redirect("172.10.10.2:3000");
}
});
我知道socket.redirect 不是有效的函数,但有类似的吗?
【问题讨论】:
-
您可以将 socket.io 消息发送回客户端并告诉它要连接的 IP/端口,并让客户端侦听该消息,当它收到它时,断开当前连接并重新连接到新服务器,如:
socket.emit('redirect', '172.10.10.2:3000') -
@jfriend00 是的!这是关于我们走了多远,不幸的是,虽然它发生得太晚了。我找不到有关 socket.io 的某种中间件的信息,它会拦截连接流?如果我使用
io.use()它仅适用于根命名空间
标签: node.js sockets networking socket.io engine.io