使用github.com/gorilla/websocket 创建websocket接口,客户端并发调用,但是返回concurrent write to websocket connection

golang_gc · 2018-04-17 14:29:20 · 3794 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-04-17 14:29:20 的主题,其中的信息可能已经有所发展或是发生改变。

使用github.com/gorilla/websocket 创建websocket接口,客户端并发调用,但是返回concurrent write to websocket connection


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3794 次点击  
加入收藏 微博
1 回复  |  直到 2018-08-27 10:27:00
kentxp
kentxp · #1 · 7年之前

这个问题也困扰了我 今天解决了
根本问题在于这个库 不支持并发写同一个conn 官方描述如下

Connections support one concurrent reader and one concurrent writer. Applications are responsible for ensuring that no more than one goroutine calls the write methods

所以我的解决是 定义 type xxx struct { con *websocket.Conn mutex sync.Mutex } 在原来直接操作con的地方 传入这个结构体 判断锁

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传