websocket 连接 socket.io问题
发布于 10 年前 作者 514366607 57276 次浏览 最后一次编辑是 8 年前

客户端: var url = “ws://localhost:8088”; w = new WebSocket( url ); //事件监听 w.onopen = function() { console.log(“open”); } w.onclose = function(e) { console.log( “closed” ); }

服务端: var socket = require( ‘socket.io’ ); var io = socket.listen( 8088 ); io.set(‘log level’, 1); io.sockets.on(‘connection’, function ( socket ) { console.log( socket ); });

WebSocket connection to ‘ws://localhost:8088/’ failed: Connection closed before receiving a handshake response 为什么在握手前就断开连接了?

10 回复

@suqian 求帮助。

是socket.io不走WS协议?

用socket.io-client. websocket只是socket.io实现业务封装的一个浏览器方面的backend, 类比的话, websocket是tcp, 而socket.io是http, 后者固然基于前者, 但是你也必须按照socket.io约定的protocol走.

@ 514366607 你搞定了么?如何解决的,我也遇到这个问题了

在客户端如果用Socketio方式就可以,换成html5的websocket方式就死活不行,崩溃ing…

@piginzoo socket.io不支持,已经封装好的东西了。换个库就好了。

不好意思,挖坟啦。

我也自己写原生客户端的websocket,也是同样的报错,lz怎么解决的?

socket.io socket.io-client版本还得对应,最好完全匹配

请问这个问题最终解决了么。 我这也是客户端用的WebSocket,服务端用的Socket.IO,想知道咋串起来。

牛头不对马嘴

@nieweidong 你在客户端用socket.io提供的客户端库来实现websocket通信就可以了,socket.io是基于websocket协议封装后的,所以你要跟socket.io连接,要么自己客户端封装成符合socket.io的通信格式,要么使用socket.io客户端库.

回到顶部