登录
首页 >  Golang >  Go教程

使用 Gorilla WebSocket 库无法接收消息,如何解决?

时间:2024-11-12 13:31:02 395浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《使用 Gorilla WebSocket 库无法接收消息,如何解决? 》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

使用 Gorilla WebSocket 库无法接收消息,如何解决?

Golang Websocket 收发消息故障排查

你在使用 Gorilla WebSocket 库时遇到了无法收到消息的问题。描述如下:

  • 在本地开发环境中,通过两个 Chrome 标签页打开网页,分别连接同一 Websocket 地址。
  • 在一个标签页刷新后,可以正常收发消息,但另一个标签页无法收到任何消息。

有人遇到过类似的问题吗?是如何解决的?

根据你提供的代码和问题描述,以下是可能的解决方案:

  • 检查 websocket 握手:确保你在升级 HTTP 请求到 Websocket 协议时没有遇到错误。
  • 独立管理 WebSocket 连接:在你的代码中,你将 ws 变量用作所有连接的共享连接。这可能会导致问题,因为每个连接应该有自己的 WebSocket 连接实例。尝试在收到新连接时创建新的 WebSocket 连接,并将其与该特定连接相关联。
  • 引用正确的 WebSocket 连接:在发送和接收消息时,请确保你使用与要进行通信的特定连接关联的 WebSocket 连接。

更新补充:

你添加的代码中证实了这是一个独立管理 WebSocket 连接的问题。原始的 Ws 函数中只有一个全局的 ws 变量,这意味着所有连接都必须共用相同的连接。在修改后的代码中,每次有新连接时都会创建一个新的 ws 变量,解决了这个问题。

好了,本文到此结束,带大家了解了《使用 Gorilla WebSocket 库无法接收消息,如何解决? 》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>