【问题标题】:Socket.io issue with multiple Kubernetes pods多个 Kubernetes pod 的 Socket.io 问题
【发布时间】:2020-01-16 19:43:35
【问题描述】:

我们使用 Nginx+ 在 Kubernetes 中部署了我们的应用程序 当我们只使用一个副本(pod)时,socket.io 客户端会建立连接并接收数据。

但是当我们通过负载平衡添加多个 pod 时,socket.io 客户端会尝试连接,然后快速断开连接并出现 xhr 错误。

[2020-01-16T19:10:50.031Z] ERROR: local server/17108 on TEST: Connection error
Error: xhr poll error
at XHR.Transport.onError (C:\Users\TEST\Desktop\Projects\broker-client\node_modules\engine.io-client\lib\transport.js:67:13)
at Request. (C:\Users\TEST\Desktop\Projects\broker-client\node_modules\engine.io-client\lib\transports\polling-xhr.js:130:10)
at Request.Emitter.emit (C:\Users\TEST\Desktop\Projects\broker-client\node_modules\component-emitter\index.js:133:20)
at Request.onError (C:\Users\TEST\Desktop\Projects\broker-client\node_modules\engine.io-client\lib\transports\polling-xhr.js:311:8)
at Timeout._onTimeout (C:\Users\TEST\Desktop\Projects\broker-client\node_modules\engine.io-client\lib\transports\polling-xhr.js:258:18)

【问题讨论】:

    标签: nginx socket.io


    【解决方案1】:

    我们通过在我们的多 pod Kubernetes 环境中将 transports: ['websocket'] 添加到 socketIOClient 选项来解决这个问题:

    socketIOClient(someUrl, {transports: ['websocket']});
    

    在 socketio 的 github 问题中链接到同一问题:https://github.com/socketio/socket.io/issues/3539

    【讨论】:

      猜你喜欢
      • 2020-09-13
      • 2020-03-23
      • 2021-11-08
      • 1970-01-01
      • 2019-02-17
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      相关资源
      最近更新 更多