Unregistered events when client WS session is closed.
[src/xds/xds-agent.git] / lib / agent / webserver.go
index 4b2e024..b75abd4 100644 (file)
@@ -11,6 +11,7 @@ import (
        "github.com/gin-contrib/static"
        "github.com/gin-gonic/gin"
        "github.com/googollee/go-socket.io"
+       "github.com/iotbzh/xds-agent/lib/apiv1"
 )
 
 // WebServer .
@@ -227,12 +228,13 @@ func (s *WebServer) socketHandler(c *gin.Context) {
        }
 
        s.sIOServer.On("connection", func(so socketio.Socket) {
-               s.Log.Debugf("WS Connected (SID=%v)", so.Id())
+               s.Log.Debugf("WS Connected (WSID=%s, SID=%s)", so.Id(), sess.ID)
                s.sessions.UpdateIOSocket(sess.ID, &so)
 
                so.On("disconnection", func() {
-                       s.Log.Debugf("WS disconnected (SID=%v)", so.Id())
+                       s.Log.Debugf("WS disconnected (WSID=%s, SID=%s)", so.Id(), sess.ID)
                        s.sessions.UpdateIOSocket(sess.ID, nil)
+                       s.events.UnRegister(apiv1.EVTAll, sess.ID)
                })
        })