您的位置 首页 知识分享

Golang WebSocket 连接为何一个标签页能正常收发信息而另一个标签页无法收到信息?

使用 websocket 时无法收到信息 在使用 gorrila websocket 库时,开发人员在本地开发…

Golang WebSocket 连接为何一个标签页能正常收发信息而另一个标签页无法收到信息?

使用 websocket 时无法收到信息

在使用 gorrila websocket 库时,开发人员在本地开发中遇到问题:

当用户在 chrome 的不同标签页中通过 websocket 访问服务器时,一个标签页能够正常收发信息,而另一个标签页则无法收到信息。

问题分析

立即学习“”;

这个问题通常是由未为每个连接创建独立的 websocket 实例引起的。

解决方案

参考 hub 上提供的聊天示例,为每个连接创建独立的 websocket 实例。

代码示例

在 websocket 包中:

func ws(c *gin.context) {     // ...      // 为每个连接创建独立的 websocket 实例     wsconn, err := upgrader.upgrade(c.writer, c.request, nil)     if err != nil {         return     }     go handlewebsocket(wsconn) }  func handlewebsocket(wsconn *websocket.conn) {     for {         // ...     } }
登录后复制

在 router 包中:

// ...  // 为每个连接创建独立的 WebSocket 实例 v1.GET("/ws", ws.Ws)
登录后复制

以上就是Golang WebSocket 连接为何一个标签页能正常收发信息而另一个标签页无法收到信息?的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/4474.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部