golang官方的websocket怎么知道客户端关闭连接

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

目前我使用code.google.com/p/go.net/websocket包来做websocket通讯,目前有一个主动推送通知的功能需要保存所有的连接conn,然后有新消息的时候主动推送给对应的conn,但是如果一个客户的conn关闭之后,我需要移除这个conn,但是看到websocket没有对应的isClose的判断。有什么好的办法解决吗?


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

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

7509 次点击  
加入收藏 微博
3 回复  |  直到 2016-08-28 12:32:08
sheepbao
sheepbao · #1 · 9年之前

这个要分吧,如果客户端主动断开,那就好说了,在客户端断开前广播消息告诉服务端断开连接。 如果是意外断开,那就靠其他方法,如心跳包机制,可以开个goroutine专门负责,心跳包超过N次后断开连接。

sheepbao
sheepbao · #2 · 9年之前

websocket本来就有心跳包的机制,你可以看看,写个handle函数就好了

qizexi
qizexi · #3 · 9年之前
sheepbaosheepbao #2 回复

websocket本来就有心跳包的机制,你可以看看,写个handle函数就好了

心跳包真的没有发现,所以才问的;目前我用主动发送空字符给客户端的解决方式,还有一个方式是客户端主动(包过恶意断开)服务器这边也是受到断开信息的。

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