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

聊天系统 websocket 频繁地断开连接并重连?

  •  
  •   itIsUnbelievable · 2020-04-23 11:09:17 +08:00 · 3003 次点击
    这是一个创建于 1675 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有时候发送聊天信息会出现对方接收不到消息的情况,也就是报了下面这个错误。
    http://ww1.sinaimg.cn/large/007RY1RBgy1ge3igr6lakj31bi07bq3i.jpg
    我看了下面几篇回答,但还是不知道如何解决这个问题。该聊天系统是用 django 和 socketio 写的。我服务器部署时使用到的工具有 nginx,uwsgi,gevent.
    https://github.com/miguelgrinberg/Flask-SocketIO/issues/179
    https://github.com/unbit/uwsgi/issues/1533
    恳请赐教。

    第 1 条附言  ·  2020-04-23 17:27:00 +08:00
    [uwsgi-websocket] "GET /socket.io/?username=18816621878&EIO=3&transport=websocket" (127.0.0.1) no PONG received in 3 seconds !!!
    <br>
    这个报错也一直存在,不知道什么原因?
    <br>
    第 2 条附言  ·  2020-04-23 17:28:47 +08:00
    6 条回复    2020-04-23 17:15:46 +08:00
    itIsUnbelievable
        1
    itIsUnbelievable  
    OP
       2020-04-23 12:03:20 +08:00
    11
    wowo243
        2
    wowo243  
       2020-04-23 12:05:49 +08:00 via Android   ❤️ 1
    发心跳了吗,之前遇到过 nginx 关链接,需要通过心跳维持链接?
    Elephant696
        3
    Elephant696  
       2020-04-23 14:08:26 +08:00   ❤️ 1
    图片打不开,盲猜是心跳问题。
    aogu555
        4
    aogu555  
       2020-04-23 14:28:16 +08:00   ❤️ 1
    之前写过一次 websoket,在开发环境也是莫名其妙的断开连接,后来排查发现是 Nginx 给关掉了,用了心跳机制后解决了。
    ochatokori
        5
    ochatokori  
       2020-04-23 14:39:23 +08:00 via Android   ❤️ 1
    长时间没有通信导致断开的话就加个心跳(一分钟内随便发点东西)
    不可抗力断开连接导致收不到信息的话可以加接收确认,一定时间内未确认重发
    itIsUnbelievable
        6
    itIsUnbelievable  
    OP
       2020-04-23 17:15:46 +08:00
    @Elephant696 为什么我能打开呢?我觉着不像是心跳问题,这个错误有点像随机性的,并不是长时间没有通信导致的断开连接。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2883 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:49 · PVG 16:49 · LAX 00:49 · JFK 03:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.