Socket.io-client: 403 Forbidden on POST with Bad握手方法

创建于 2020-11-02  ·  11评论  ·  资料来源: socketio/socket.io-client

返回 {"code":2,"message":"错误的握手方法"}

什么意思?

我该如何解决?

所有11条评论

检查客户端和服务器版本是否相同,使用 v2.xx 客户端连接到 v3.0.0 服务器将无法工作,并出现此确切错误。 这是由于sid没有被传递。

@lcherone我不认为这与 v3 版本有关,因为它在 5 天前创建问题时实际上并未发布。 还是在发布候选版本中发生了这种情况?

@zhangzheng7856你能提供更多细节吗? 您使用的是 JS 服务器/客户端吗? 哪个版本?

这里抛出错误: https :

这意味着服务器收到的 HTTP 请求不是 GET,而是没有 sid,这是无效的。

可能相关: https :

@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你能打开一个重现测试用例的问题吗? 谢谢!

此页面是否有帮助?
0 / 5 - 0 等级