Compare commits

...

1 Commits

Author SHA1 Message Date
8995cbd846 fix: adding beforeReconnectFn for reconnecting 2026-03-30 15:52:39 +07:00

View File

@@ -173,8 +173,9 @@ type SafeWebsocketClient struct {
isConnected bool
doneMap *safemap.SafeMap[string, chan struct{}]
writeChan chan Message
monitor *internal.MemoryMonitor
writeChan chan Message
monitor *internal.MemoryMonitor
beforeReconnectFn func()
}
@@ -288,6 +289,9 @@ func (wsClient *SafeWebsocketClient) reconnectHandler() {
continue
}
log.Println("Reconnected successfully")
if wsClient.beforeReconnectFn != nil {
wsClient.beforeReconnectFn()
}
backoff = 1 * time.Second
isInnerLoop = false
continue
@@ -414,6 +418,20 @@ func (wsClient *SafeWebsocketClient) triggerReconnect() {
}
}
func (wsClient *SafeWebsocketClient) SetBeforeReconnect(fn func()) {
wsClient.mu.WriteHandler(func() error {
wsClient.beforeReconnectFn = fn
return nil
})
}
func (wsClient *SafeWebsocketClient) SetPath(path string) {
wsClient.mu.WriteHandler(func() error {
wsClient.path = &path
return nil
})
}
func (wsClient *SafeWebsocketClient) ReconnectChannel() <-chan struct{} {
reconnectCh := make(chan struct{}, 1)
wsClient.mu.WriteHandler(func() error {