add graceful shutdown, add reconnect on connection loss

This commit is contained in:
lbenedar
2026-04-10 13:59:16 +03:00
parent fb4e371348
commit a465e6a657
8 changed files with 286 additions and 148 deletions

View File

@@ -80,7 +80,12 @@ func (tr *FoundryTransport) ListenWebSocket() {
for {
_, message, err := tr.WsConn.ReadMessage()
if err != nil {
tr.ReadChan.Err() <- &types.FoundryError{Direction: types.ReaderCode, Err: err, Type: types.WebSocketCode}
select {
case <-tr.ReadChan.Done():
return
default:
tr.ReadChan.Err() <- &types.FoundryError{Direction: types.ReaderCode, Err: err, Type: types.WebSocketCode, IsFatal: true}
}
return
}
data, err := types.ParseWsRespMessage(string(message), types.RequestCodes)
@@ -105,7 +110,7 @@ func (tr *FoundryTransport) GetJsonData(stateType string) ([]byte, error) {
return tr.HandleWebsocketRequest(msg)
}
func (tr *FoundryTransport) CloseWebSocketConn() {
func (tr *FoundryTransport) CloseWebSocketConn() error {
tr.Logger.Debug("Websocket has been closed")
tr.WsConn.Close()
return tr.WsConn.Close()
}