用于共享相同IP地址的用户的NodeJS Sticky Session

时间:2017-08-30 11:50:23

标签: node.js nginx socket.io node-cluster sticky-session

我们的NodeJS(使用套接字和HTTP)项目正由用户(所有人都在同一办公室,同一网络工作)共享同一个公共IP地址。我已经设置了一个粘性会话实现,它根据用户的公共IP地址生成一个哈希值,然后为它分配一个节点工作者。 socket.io需要这种粘性才能发挥作用。由于所有用户共享相同的公共IP地址,因此哈希总是相同的,因此仅使用一个工作者。所有其他工人都没有被使用: - (

由于我使用的是一个非常低级别的NodeJS&net.createServer API和pauseOnConnect选项,因此我无法获得任何其他信息,如标头,Cookie,以便为每个用户创建唯一的哈希值

问题:

  • 这种粘性真的需要吗?我正在使用socket.io-redis来广播消息。不确定此适配器是否可以帮助我处理套接字连接,并且无需管理明确的粘性。我试过这个,但似乎没有起作用。

  • 是否可以从net.createServer发出的连接对象中读取标题/ Cookie?我认为这是不可能的,因为它在这个级别上没有任何HTTP实现。

  • 是否可以使用http.createServer API并将请求对象从主进程传递给worker。这样我就可以读取标题/ cookie并生成一个唯一的哈希。

  • 最坏的情况是,是否可以在代理级别覆盖客户端的IP地址(使用nginx)并为每个用户设置一些dummuy唯一的IP地址。

0 个答案:

没有答案
相关问题