diff --git a/wshandler/wshandler.go b/wshandler/wshandler.go index 381c5b4..144abbf 100644 --- a/wshandler/wshandler.go +++ b/wshandler/wshandler.go @@ -86,7 +86,7 @@ type wsConfig struct { SyncPipeline string `json:"ws_sync_pipeline"` } -func NewWebsocketHandler(authglobal gocommon.AuthCollectionGlobal, receiver WebSocketMessageReceiver) (wsh *WebsocketHandler) { +func NewWebsocketHandler(authglobal gocommon.AuthCollectionGlobal) (wsh *WebsocketHandler) { var config wsConfig gocommon.LoadConfig(&config) @@ -119,7 +119,6 @@ func NewWebsocketHandler(authglobal gocommon.AuthCollectionGlobal, receiver WebS redisSync: redisSync, connInOutChan: make(chan *wsconn), deliveryChan: make(chan any, 1000), - callReceiver: receiver, } authCaches[region] = sh @@ -137,7 +136,7 @@ func (ws *WebsocketHandler) Cleanup() { } } -func (ws *WebsocketHandler) RegisterHandlers(ctx context.Context, serveMux *http.ServeMux, prefix string) error { +func (ws *WebsocketHandler) RegisterHandlers(ctx context.Context, serveMux *http.ServeMux, prefix string, receiver WebSocketMessageReceiver) error { for region, sh := range ws.authCaches { if region == "default" { region = "" @@ -148,6 +147,7 @@ func (ws *WebsocketHandler) RegisterHandlers(ctx context.Context, serveMux *http } else { serveMux.HandleFunc(url, sh.upgrade) } + sh.callReceiver = receiver go sh.mainLoop(ctx) }