繁体   English   中英

Node.js集群将连接传递给特定工作程序

[英]Node.js cluster passing connection to specific worker

我有基于socket.io库的多人游戏,我想在多个线程上进行缩放。 我了解到,node.js具有用于处理多线程的集群模块。 我的游戏世界由多个区域组成,我希望每个区域都在自己的过程中进行处理。 我需要一种将用户的套接字传递给特定工作人员的方法,以便用户可以从一个区域移动到另一个区域。 我已经阅读了node.js文档,该集群模块使用轮询方法为每个连接选择工作程序。 也许有任何解决方法来操纵连接?

我不完全确定群集是否适合您。 群集的主要优点是,它可以自动平衡不同进程之间的传入连接。 但是,您不想使用该功能-您希望将每个连接手动分配给正在处理给定区域的进程。

因此,我认为您应该启动所需的进程数,为每个进程分配一个特定于该区域的端口,然后让客户端向主服务器发送一个Ajax请求,询问它们应该执行哪个端口。用于其区域的socket.io连接。 客户端获得该ajax响应,然后直接连接到其区域的适当服务器。 您所有的socket.io服务器都需要允许来自所需母版页域/端口的跨域请求。

可以如上所述通过端口完成连接到区域的服务器,也可以通过单独的主机名(例如zone1.mygameserver.com完成连接,然后使用诸如nginx之类的东西将所有不同的主机路由到服务器上的特定端口框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM