V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fengpan567
V2EX  ›  问与答

node.js 用负载均衡后无法进行 websocket 通信

  •  
  •   fengpan567 · 2018-12-04 21:34:11 +08:00 · 1426 次点击
    这是一个创建于 2199 天前的主题,其中的信息可能已经有所发展或是发生改变。
    测试环境没有用集群,一切都正常。但是生产环境用了负载均衡,node.js 作为 websocket 服务端,前端通过 socket.io 去连接,总是出现握手成功,数据却不推送的情况。有没有老哥碰到过这种问题,谢谢啦
    4 条回复    2018-12-04 22:08:00 +08:00
    zythum
        1
    zythum  
       2018-12-04 21:38:05 +08:00
    用个 redis 去做数据同步。https://github.com/socketio/socket.io-redis
    momocraft
        2
    momocraft  
       2018-12-04 21:41:49 +08:00
    负载均衡真的 支持 ws 吗?
    polythene
        3
    polythene  
       2018-12-04 21:47:22 +08:00
    因为跟 server A 建立的 websocket 链接,后面又被负载均衡 route 到 server B 上去了,可以试试 session sticky 之类的方案,或者 @zythum 的 redis 共享链接也是可以的。
    fengpan567
        4
    fengpan567  
    OP
       2018-12-04 22:08:00 +08:00
    @zythum
    @polythene
    用的是 ip_hash 的均衡策略,所以不会存在 session 共享的问题吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2450 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:27 · PVG 08:27 · LAX 16:27 · JFK 19:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.