Reconnect websockets

This commit is contained in:
Ken-Håvard Lieng 2015-06-04 02:06:17 +02:00
parent 6a1d55c968
commit be695a9881
6 changed files with 103 additions and 26 deletions

View file

@ -1,6 +1,8 @@
package server
import (
"time"
"github.com/khlieng/name_pending/Godeps/_workspace/src/github.com/gorilla/websocket"
)
@ -18,8 +20,22 @@ func NewWebSocket(ws *websocket.Conn) *WebSocket {
}
func (w *WebSocket) write() {
var err error
ping := time.Tick(20 * time.Second)
for {
err := w.conn.WriteMessage(websocket.TextMessage, <-w.Out)
select {
case msg, ok := <-w.Out:
if !ok {
return
}
err = w.conn.WriteMessage(websocket.TextMessage, msg)
case <-ping:
err = w.conn.WriteJSON(WSResponse{Type: "ping"})
}
if err != nil {
return
}