未捕获的类型错误:无法读取未定义 socket.io.client 的属性“sid”

Posted

技术标签:

【中文标题】未捕获的类型错误:无法读取未定义 socket.io.client 的属性“sid”【英文标题】:Uncaught TypeError: Cannot read property 'sid' of undefined socket.io.client 【发布时间】:2021-02-23 08:13:50 【问题描述】:

我在 spfx react 应用程序中使用 socket.io.client 并在进行套接字连接时收到此错误:

Uncaught TypeError: Cannot read property 'sid' of undefined

【问题讨论】:

【参考方案1】:

确保服务器端和客户端的 socket.io 版本相同。 因为 socket.io 2.0 不再兼容 3.0。 你可以在他们的 api 文档中查看它https://socket.io/docs/v3/migrating-from-2-x-to-3-0/index.html

【讨论】:

是的,是正确的修复方法,你必须更新你的 socket.io 前后包,否则你将在传输套接字的方式上出现故障,前面将使用轮询,因此你将拥有海量套接字断开连接....解决方案:前后更新你的socket.io包的版本【参考方案2】:

"socket.io-client": "^3.0.1" 有这个问题。这是最新发布的版本。

在将版本降级为 "socket.io-client": "^2.3.1" 时问题得到解决。

【讨论】:

降级似乎就像逃避问题一样。

以上是关于未捕获的类型错误:无法读取未定义 socket.io.client 的属性“sid”的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误:无法读取未定义的属性 toLowerCase

JQuery:未捕获的类型错误:无法读取未定义的属性“调用”

未捕获的类型错误:无法读取文本字段上未定义错误的属性“toLowerCase”

未捕获的类型错误:无法读取未定义的属性(读取“路径名”)

为啥我会收到“未捕获的类型错误:无法读取未定义的属性 'body'”?

反应和流星“未捕获的类型错误:无法读取未定义的属性'createElement'”