大佬教程收集整理的这篇文章主要介绍了node.js – socket.io redis expressjs cluster – 在expressjs请求中获取套接字对象,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图找到这个解决方案,但似乎没有任何东西可以按照我需要的方式工作.
集群expressjs和socket.io我们可以使用redis共享会话并在io世界中发送io消息(io.sockets.on(‘connection’,…).问题是我们是否要发送消息(或使用简单的socket.join / leavE)在expressjs世界里面(route.get / post).
如果我们不使用集群,我们可以将客户端套接字对象发送到快速请求对象(或者只是导出io对象),然后在任何GET / POST路由上随时使用它.
另一方面,如果我们正在集群并使用上面提到的方法来获取expressjs世界中的套接字对象,有时套接字对象是未定义的,因为此客户端的套接字对象是在其他worker上初始化的.
一些示例流程:
>客户端连接到http://localhost,工作人员1处理此请求.@H_618_17@>加载@L_674_14@后,客户端连接到socket.io. Worker 2处理此连接.@H_618_17@>客户端执行POST,然后worker 1或worker X处理此请求.
在这种情况下,当客户端执行POST时,只有worker 2知道该客户端的套接字对象.所以这将得到一个未定义的套接字对象.
那么,问题是:
我们如何从任何worker获取客户端套接字对象以在expressjs请求对象上重用它.
笔记
>不想使用某种代理.@H_618_17@>不想迁移到其他库(expressio,sockjs ……)@H_618_17@>抱歉我的英文:)
使用最后的nodejs,socket.io,expressjs,socket.io-redis,redis …版本
不要犹豫,不要问问题!
更新1
可能的解决方案,但仍需要测试它.不知道这是否真的很好:解决方案.
>更新3:在我自己的答案上工作代码
更新2
像更新1但使用https://nodejs.org/dist/latest-v5.x/docs/api/cluster.html#cluster_event_message
以上是大佬教程为你收集整理的node.js – socket.io redis expressjs cluster – 在expressjs请求中获取套接字对象全部内容,希望文章能够帮你解决node.js – socket.io redis expressjs cluster – 在expressjs请求中获取套接字对象所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。