我正在尝试使用 Nginx、Node.js 和 Socket.io 1.0 在 Rackspace 上使用集群为自己设置 POC。我假设我需要使用集群,因为如果需要,我希望它可以跨多个服务器进行扩展。我希望每个节点都有自己的实例,到目前为止,我看不出每个实例都需要出于任何原因相互交谈。同样,到目前为止,我相信我需要使用集群,因为我可能有许多客户端连接到该服务器,并且我希望它能够相应地增长和缩小。我的最终目标是构建一个类似于此处所示的 POC:https ://cloud.google.com/developers/articles/real-time-gaming-with-node-js-websocket-on-gcp
我刚刚得到了我认为已建立的新 Socket.io 1.0 的有效设置,但是当从路由器后面的不同设备连接时,它们都在我的日志记录中显示相同的 PID,我认为这是由于所需的粘性- Socket.io 的会话。我不确定这是否与我们过去通过集群获得的工作进程相同,但我仍然试图让我的头脑围绕这一切。
首先我想知道是否需要使用集群和粘性会话,因为对于相同的外部 IP 只发布了 1 个 PID,是否有将每台计算机视为自己的实例?我不想发回更新该 IP 背后的每个人的响应。
我的第二个问题是这个,这可能是一个愚蠢的问题,但我还是在问:) 在阅读有关如何使粘性会话工作的信息时,我一直看到人们说“使用粘性会话,例如通过 IP 地址”。“喜欢”这个词吸引了我。我似乎发现有人提到使用带有 IP 和 cookie 的粘性会话。你可以通过其他任何东西来做到这一点,例如用户名、颁发的令牌或其他任何东西吗?我担心的是,如果有人在移动设备上玩这个并且他们切换了塔,塔会发布一个新的 IP,因此反过来会发布一个新的 PID,并且基本上玩家游戏会失败。我理解对了吗?
请原谅我,因为我是 Node.js 的新手,但我认为这是学习 node.js 和云中集群的一种很酷的方式。任何人都可以提供的任何信息或方向都会有很大帮助。许多 tuts 似乎都向所有人广播事件,但我正在寻找一个可扩展的解决方案,其中每个连接都可以在大多数时间单独发送事件。当服务器与他们通信时,我还需要解决同一防火墙后面的许多人被视为单独连接的问题。同样,如果您觉得有任何阅读或教程可以帮助我了解 socket.io 1.0 以及我正在尝试做的事情,请回复。谢谢!