【问题标题】:socket.io client catch error : " WebSocket connection to failed: Error in connection establishment:" objectsocket.io 客户端捕获错误:“WebSocket 连接失败:连接建立错误:”对象
【发布时间】:2021-03-13 17:26:35
【问题描述】:

如果给定的主机不正确或无法访问,我正在尝试捕获连接失败错误。但似乎此错误是从 websocket 本身记录的,与它本身的Shocket io 无关。

WebSocket 连接到 'ws://file/socket.io/?EIO=4&transport=websocket' 失败:错误 连接建立:net::ERR_NAME_NOT_RESOLVED

我试过这个捕获错误命名事件:

        socket.on("connect_error", (error)=>{
            console.log(error)
        })
        socket.on("connect_failed", (error)=>{
            console.log(error)
        })
        socket.on("error", (error)=>{
            console.log(error)
        })

但它们都不起作用。

研究:

https://github.com/socketio/socket.io-client/issues/1097

我在我的 socketio 客户端实例上尝试了这个选项:

const socket = require('socket.io-client')('https://somefoo.com', {
  transports: ['websocket'],
  rejectUnauthorized: false
})

【问题讨论】:

    标签: node.js websocket socket.io


    【解决方案1】:

    您可以尝试使用socket.io管理器来捕获更高级别的错误。

    https://socket.io/docs/v3/client-api/#Event-%E2%80%98error%E2%80%99

    https://socket.io/docs/v3/client-api/#Manager

        const manager = new Manager('https://somefoo.com')
        const socket = manager.socket('/')
    
        manager.on('error', (error) => {
            // Fired upon a connection error.
            console.log('socket error')
        })
    
        socket.on('connect_error', (error) => {
            // Fired when an namespace middleware error occurs.
            console.log('connection error')
        })
    

    【讨论】:

      猜你喜欢
      • 2023-01-04
      • 1970-01-01
      • 2017-11-18
      • 2019-08-30
      • 2014-12-19
      • 2016-01-29
      • 2016-03-11
      • 2014-05-20
      相关资源
      最近更新 更多