【发布时间】:2016-09-18 20:54:59
【问题描述】:
使用 gorilla websocket api for go,我如何知道客户端是否仍然连接?
我现在尝试的是:
func Listen(ws *websocket.Conn) {
connTimeout := 3
timeLastSent := time.Now().Second()
for ((timeLastSent + connTimeout) % 60) != time.Now().Second() {
msg := Message{}
err := ws.ReadJSON(&msg)
if err == websocket.ErrCloseSent {
break
} else if err != nil {
continue
}
//Message recived
EventMessage <- msg
timeLastSent = time.Now().Second()
}
//Connection timed out.
return
}
但这会导致错误repeated read on failed websocket connection。
我一直在研究使用ws.SetReadDeadline(t),但我不知道如何使用它,也不知道它是否是我正在寻找的东西。
我该怎么办?
【问题讨论】:
标签: go websocket server gorilla