Avoid panic on disconnect

This commit is contained in:
Lubos Dolezel
2023-03-07 18:18:14 +01:00
parent d61d3c6a75
commit 23f87fef8b
2 changed files with 14 additions and 3 deletions

7
app.go
View File

@@ -263,9 +263,12 @@ func (a *App) Start() {
// entity listeners and event listeners
elChan := make(chan ws.ChanMsg)
go ws.ListenWebsocket(a.conn, a.ctx, elChan)
var msg ws.ChanMsg
for {
msg = <-elChan
msg, ok := <-elChan
if !ok {
break
}
if a.entityListenersId == msg.Id {
go callEntityListeners(a, msg.Raw)
} else {

View File

@@ -3,6 +3,7 @@ package websocket
import (
"context"
"encoding/json"
"log"
"github.com/gorilla/websocket"
)
@@ -20,7 +21,14 @@ type ChanMsg struct {
func ListenWebsocket(conn *websocket.Conn, ctx context.Context, c chan ChanMsg) {
for {
bytes, _ := ReadMessage(conn, ctx)
bytes, err := ReadMessage(conn, ctx)
if err != nil {
log.Default().Println("Error reading from websocket:", err)
close(c)
break
}
base := BaseMessage{}
json.Unmarshal(bytes, &base)
chanMsg := ChanMsg{