diff --git a/internal/websocket/receive.go b/internal/websocket/receive.go index e4638a6..7912de3 100644 --- a/internal/websocket/receive.go +++ b/internal/websocket/receive.go @@ -19,6 +19,7 @@ func (c *Client) ProcessServerMessages(channel chan<- GoTomato.ServerMessage) { defer close(Done) for { + c.Conn.SetReadDeadline(time.Now().Add(10 * time.Second)) _, message, err := c.Conn.ReadMessage() if err != nil { // On normal closure exit gracefully @@ -26,6 +27,7 @@ func (c *Client) ProcessServerMessages(channel chan<- GoTomato.ServerMessage) { return } + c.LastErr = err // Try to reconnect on unexpected disconnect for { channel <- prevMessage // send previous ServerMessage to update view