小编nad*_*ada的帖子

socket.io + redis + expressjs cluster - 在expressjs请求中获取套接字对象

基于这个答案的问题:https://stackoverflow.com/a/18650183/4478897

我试图找到这个解决方案,但似乎没有任何东西可以按照我需要的方式工作.

集群expressjs,socket.io我们可以使用redis共享会话并ioioworld(io.sockets.on('connection',...)内发送消息.问题是我们是想socket.join/leaveexpressjs世界里发送消息(或使用简单的)(route.get/post).

如果我们不使用集群,我们可以atach客户socket对象明确request对象(或简单地exportio对象),然后在任何GET/POST路线随时使用它.

在另一方面,如果我们的集群和使用所提到的方法来获取socket里面的对象expressjs世界,有时socket对象,因为未定义socket此客户端对象在其他初始化worker.

一些示例流程:

  • 客户端连接到http:// localhostworker 1处理此请求.
  • 加载页面后,客户端连接到socket.io.Worker 2处理此连接.
  • 客户端再次执行POST worker 1worker X处理此请求.

在这种情况下,当客户端执行POST时,只worker 2知道socket该客户端的对象.所以这将得到一个未定义的socket对象.

那么,问题是:

我们如何socket从任何客户端对象中获取worker它以在expressjs request对象上重用它. …

cluster-computing redis node.js express socket.io

5
推荐指数
1
解决办法
955
查看次数

标签 统计

cluster-computing ×1

express ×1

node.js ×1

redis ×1

socket.io ×1