fix: adding beforeReconnectFn for reconnecting
This commit is contained in:
@@ -173,8 +173,9 @@ type SafeWebsocketClient struct {
|
|||||||
isConnected bool
|
isConnected bool
|
||||||
doneMap *safemap.SafeMap[string, chan struct{}]
|
doneMap *safemap.SafeMap[string, chan struct{}]
|
||||||
|
|
||||||
writeChan chan Message
|
writeChan chan Message
|
||||||
monitor *internal.MemoryMonitor
|
monitor *internal.MemoryMonitor
|
||||||
|
beforeReconnectFn func()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -288,6 +289,9 @@ func (wsClient *SafeWebsocketClient) reconnectHandler() {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
log.Println("Reconnected successfully")
|
log.Println("Reconnected successfully")
|
||||||
|
if wsClient.beforeReconnectFn != nil {
|
||||||
|
wsClient.beforeReconnectFn()
|
||||||
|
}
|
||||||
backoff = 1 * time.Second
|
backoff = 1 * time.Second
|
||||||
isInnerLoop = false
|
isInnerLoop = false
|
||||||
continue
|
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{} {
|
func (wsClient *SafeWebsocketClient) ReconnectChannel() <-chan struct{} {
|
||||||
reconnectCh := make(chan struct{}, 1)
|
reconnectCh := make(chan struct{}, 1)
|
||||||
wsClient.mu.WriteHandler(func() error {
|
wsClient.mu.WriteHandler(func() error {
|
||||||
|
|||||||
Reference in New Issue
Block a user