socket.io-client链接java的websocket失败是怎么回事?

问题描述

java使用原生的代码写的websocket,我通过socket.io-client来链接,服务通过第三方测试没问题,如:http://www.blue-zero.com/WebS...
但是代码就是链接不上。

问题出现的环境背景及自己尝试过哪些方法

如果不加transports: ['websocket'],使用的轮训的方式,不报failed,但是connect_error.
如果加上则报链接失败,直接就连不上。

websocket.js:112 WebSocket connection to 'ws://192.23.1.16:8080/api/webSocket/?EIO=3&transport=websocket' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
webpackJsonp.2131.WS.doOpen @ websocket.js:112
OrderList.js:80 ******************connect_error ************ Error: websocket error
    at WS.webpackJsonp.2113.Transport.onError (transport.js:64)
    at WebSocket.ws.onerror (websocket.js:150)

相关代码

const socket = io('ws://172.23.1.16:8080', {
      path: '/seller/webSocket',
      transports: ['websocket'],
    })
    // socket.open()
    socket.on('connect', () => {
      console.log('*********************connected')
    })
    socket.on('connect_error', err => {
      console.log('******************connect_error ************', err)
    })

这是怎么回事?socket.io-client只能链接socket.io写的服务吗?

阅读 5.3k
1 个回答

socket.io-client只能连socket.io服务端,socket.io有自己的通讯格式,默认socket.io是用http来完成socket.io握手,然后转为websocket协议按照socket.io通讯格式通讯,如果你的websocket服务端无法理解socket.io-client发来的数据格式,则无法与其通讯的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题