diff --git a/wshandler/wshandler.go b/wshandler/wshandler.go index 144abbf..60eb526 100644 --- a/wshandler/wshandler.go +++ b/wshandler/wshandler.go @@ -78,8 +78,9 @@ type subhandler struct { // WebsocketHandler : type WebsocketHandler struct { - authCaches map[string]*subhandler - RedisSync *redis.Client + authCaches map[string]*subhandler + RedisSync *redis.Client + ClientMessageReceiver WebSocketMessageReceiver } type wsConfig struct { @@ -125,8 +126,9 @@ func NewWebsocketHandler(authglobal gocommon.AuthCollectionGlobal) (wsh *Websock } return &WebsocketHandler{ - authCaches: authCaches, - RedisSync: redisSync, + authCaches: authCaches, + RedisSync: redisSync, + ClientMessageReceiver: func(primitive.ObjectID, string, WebSocketMessageType, io.Reader) {}, } } @@ -136,7 +138,7 @@ func (ws *WebsocketHandler) Cleanup() { } } -func (ws *WebsocketHandler) RegisterHandlers(ctx context.Context, serveMux *http.ServeMux, prefix string, receiver WebSocketMessageReceiver) error { +func (ws *WebsocketHandler) RegisterHandlers(ctx context.Context, serveMux *http.ServeMux, prefix string) error { for region, sh := range ws.authCaches { if region == "default" { region = "" @@ -147,8 +149,7 @@ func (ws *WebsocketHandler) RegisterHandlers(ctx context.Context, serveMux *http } else { serveMux.HandleFunc(url, sh.upgrade) } - sh.callReceiver = receiver - + sh.callReceiver = ws.ClientMessageReceiver go sh.mainLoop(ctx) }