I am trying to create chat application. Constantly facing websocket connection closing with status 1006 even though ping pong is established. How to deal with the disconnection? The package we are using is github.com/gofiber/websocket/v2
Asked
Active
Viewed 686 times
1 Answers
0
checkout ikisocket fiber wrapper for one such example.
func (kws *Websocket) send(ctx context.Context) {
for {
select {
case message := <-kws.queue:
if !kws.hasConn() {
if message.retries <= MaxSendRetry {
// retry without blocking the sending thread
go func() {
time.Sleep(RetrySendTimeout)
message.retries = message.retries + 1
kws.queue <- message
}()
}
continue
}
kws.mu.RLock()
err := kws.ws.WriteMessage(message.mType, message.data)
kws.mu.RUnlock()
if err != nil {
kws.disconnected(err)
}
case <-ctx.Done():
return
}
}
}

mohammad
- 2,568
- 3
- 20
- 41