返回 {"code":2,"message":"错误的握手方法"}
什么意思?
我该如何解决?
检查客户端和服务器版本是否相同,使用 v2.xx 客户端连接到 v3.0.0 服务器将无法工作,并出现此确切错误。 这是由于sid
没有被传递。
@lcherone你是对的。 我有同样的问题,因为客户端使用 2 天前发布的 3.0.0 版本,而服务器端使用使用 2.xx 版本的 laravel-echo-server。
@travisnguyen20这也发生在我身上,有一个使用 2.3.0 的旧项目,它刚刚复制,然后在编写服务器部分时我做了npm i socket.io
安装了 v3,然后花了几个小时调试它为什么坏了,然后注意到版本差异,一时兴起改变了 socket.io-client 以匹配"socket.io-client": "^3.0.0",
运行npm i
和 walla 再次工作。 思想 id 在这里寻找相同的问题,然后发布了建议。 认为它可能会引起一些窥视,因为错误根本没有帮助,我注意到的一件事是它在节点中运行良好,但仅在浏览器中使用时才会出错。
我认为最近的sid
变化是所有待办事项,因为它在这条线上很无聊: https :
编辑,这是它不起作用的示例: https ://glitch.com/edit/#!/socket -io-sid?path=views%2Findex.html%3A13%3A22
好的... 3 小时面临这个问题 xd。 我的头现在真的爆炸了!
所以看起来我不是唯一一个有这个问题的人,对吧?
@dalexhd我不确定我是否理解。 两边的Socket.IO版本是一样的吗?
是的 socket.io 客户端的相同版本。
@darrachequesne我正在为一个类似的问题劫持这个线程,这里提到https://github.com/socketio/socket.io-client/issues/1140#issuecomment -728840985。 您能否澄清这是一个错误还是 v2.3 和 v3.0 之间的重大更改?
这确实是一个错误。 它应该由https://github.com/socketio/engine.io-client/commit/1c8cba8818e930205918a70f05c1164865842a48修复,包含在[email protected]
和[email protected]
(https://github.com/socketio /socket.io-client/commit/625d146f28376cea88aa8379891d02d845915154)。
有人可以确认吗?
我在客户端和服务器上安装了 3.0.3 版,这个问题仍然存在。
我正在关闭这个,因为我认为这个问题现在已经解决了。
@mcarnoky001你能打开一个重现测试用例的问题吗? 谢谢!