想问一下,websocket集群间如何通信

公司在做一个直播项目,有聊天室功能,使用websocket实现的。一共4台机器,一台放redis和mysql,一台用来做负载均衡,剩下两台放业务代码。在进入直播间的时候会开始websocket连接,连接的时候会带上直播间的id和用户本身的id,因为有负载均衡的存在,同一个直播间的人会出现在两台服务器中。现在问题就是同一个直播间的人,说话的那个在a服务器,如何让在b服务器上的同一个直播间的人收到他的消息呢。求各位大佬指教一下:sob:

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 17
随波逐流

swoole如何管理集群 虽然没有实践过, 但是道理都是一样的

现画的, 丑陋的很:laughing:

现有业务没有这方面的需求, 所有生疏, 欢迎各位大佬🦶我

3年前 评论
test3221 (楼主) 3年前
随波逐流 (作者) 3年前
test3221 (楼主) 3年前
chigua 3年前
test3221 (楼主) 3年前

也可以不用加服务器,直接在 a 和 b 之间建立连接,在 a 服务器收到新的消息时,发送同样的消息给 b,b 服务器再通知连接他的用户。用消息队列应该会更好,所有消息写入队列,然后各服务器取出消息进行发送。

3年前 评论

redis中维护一份用户与机器关系映射

3年前 评论
mouyong

gateawayworker 你值得拥有

3年前 评论

mq 根据 机器 id 转发啊

3年前 评论
CodingHePing

github.com/Hyperf-Glory/socket-io 帮你完成了很多逻辑了。目前跑在几个docker容器里。

3年前 评论
test3221 (楼主) 3年前
guaiziguohai

哥们解决了吗,能分享一下吗

2年前 评论

个人建议独立使用 workman 做 websocket 服务器,使用 GatewayWorker 能快速开发相关功能,前端通过调用 lLaravel 或者 tp 等 php 常规框架的接口,接口在调用 websocket 服务器,就能完美解决 websocket 通讯问题,实现了聊天室、客服,包括小程序中的各种实时交互与应用相关的功能。可以看 demo(https://element.wmhello.cn)

9个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!