首页 文章

为什么HTML WebSocket访问Socket.io Web套接字服务器失败?

提问于
浏览
3

正如socket.io所说,它支持WebSocket,因此,我使用HTML5标准的web套接字api来访问socket.io服务器,但我总是得到以下错误:

与'ws:// localhost:8080 /'的WebSocket连接失败:在收到握手响应之前连接已关闭

然后,我尝试在js中使用socket.io客户端来访问socket.io服务器,它工作,并通过chrome网络监控,我发现它正确使用Web套接字协议 .

有没有人尝试过W3C Websocket api来访问socket.io服务器并遇到类似的问题?或者我的问题的任何想法或线索?不胜感激!

测试代码在这里:https://github.com/piginzoo/socketiotest

2 回答

  • 0

    注意:Socket.IO不是WebSocket实现 . 尽管Socket.IO确实在可能的情况下使用WebSocket作为传输,但它会为每个数据包添加一些元数据:数据包类型,命名空间和需要消息确认时的确认ID . 这就是为什么WebSocket客户端无法成功连接到Socket.IO服务器,而Socket.IO客户端也无法连接到WebSocket服务器(如ws://echo.websocket.org) .
    我在socketio github问题中找到了这个:
    Socket.IO is not a WebSocket server. Please see ws instead. https://github.com/socketio/socket.io/issues/3022

  • 0

    我们遇到了完全相同的问题 . 结束ws websockets . 不确定是否有更好的解决方案 .

相关问题