Skip to content

Commit 7e2798a

Browse files
authored
handle all WS errors (#148)
1 parent 6209a99 commit 7e2798a

File tree

1 file changed

+22
-26
lines changed

1 file changed

+22
-26
lines changed

internal/lobbyServer/lobby.go

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -298,37 +298,33 @@ func (s *LobbyServer) wsHandler(w http.ResponseWriter, r *http.Request) {
298298
var receivedMessage SocketMessage
299299
err := ws.ReadJSON(&receivedMessage)
300300
if err != nil {
301-
if e, ok := err.(*websocket.CloseError); ok {
302-
for i, v := range s.gameServers {
303-
for k, w := range v.Players {
304-
if w.Socket == ws {
305-
v.Logger.Info("Player has left lobby", "closeCode", e.Code, "player", k, "address", ws.RemoteAddr())
306-
307-
v.PlayersMutex.Lock() // any player can modify this, which would be in a different thread
308-
if !v.Running {
309-
delete(v.Players, k)
310-
} else {
311-
w.InLobby = false
312-
v.Players[k] = w
313-
}
314-
v.PlayersMutex.Unlock()
315-
316-
s.updatePlayers(v)
301+
for i, v := range s.gameServers {
302+
for k, w := range v.Players {
303+
if w.Socket == ws {
304+
v.Logger.Info("Player has left lobby", "reason", err.Error(), "player", k, "address", ws.RemoteAddr())
305+
306+
v.PlayersMutex.Lock() // any player can modify this, which would be in a different thread
307+
if !v.Running {
308+
delete(v.Players, k)
309+
} else {
310+
w.InLobby = false
311+
v.Players[k] = w
317312
}
313+
v.PlayersMutex.Unlock()
314+
315+
s.updatePlayers(v)
318316
}
319-
if !v.Running {
320-
if len(v.Players) == 0 {
321-
v.Logger.Info("No more players in lobby, deleting")
322-
v.CloseServers()
323-
delete(s.gameServers, i)
324-
}
317+
}
318+
if !v.Running {
319+
if len(v.Players) == 0 {
320+
v.Logger.Info("No more players in lobby, deleting")
321+
v.CloseServers()
322+
delete(s.gameServers, i)
325323
}
326324
}
327-
// s.Logger.Info("closed WS connection", "address", ws.Request().RemoteAddr)
328-
return
329325
}
330-
s.Logger.Info("could not read WS message", "reason", err.Error(), "address", ws.RemoteAddr())
331-
continue
326+
// s.Logger.Info("closed WS connection", "address", ws.Request().RemoteAddr)
327+
return
332328
}
333329

334330
// s.Logger.Info("received message", "message", receivedMessage)

0 commit comments

Comments
 (0)