X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsserver%2Fwebserver.go;h=24456b9b8d74afa0d9042498cd5ccaec1b11eb39;hb=65e09e831cf13343ac713fbf15281174d1f13a94;hp=3b5b23967af1f94428fd0b5dcdaa3749bf7e7ffd;hpb=9fb41a3693eeaac9adea71112232abaafea54c8f;p=src%2Fxds%2Fxds-server.git diff --git a/lib/xdsserver/webserver.go b/lib/xdsserver/webserver.go index 3b5b239..24456b9 100644 --- a/lib/xdsserver/webserver.go +++ b/lib/xdsserver/webserver.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 "IoT.bzh" + * Copyright (C) 2017-2018 "IoT.bzh" * Author Sebastien Douheret * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,7 +28,7 @@ import ( "github.com/Sirupsen/logrus" "github.com/gin-contrib/static" "github.com/gin-gonic/gin" - "github.com/googollee/go-socket.io" + socketio "github.com/googollee/go-socket.io" ) // WebServer . @@ -43,8 +43,8 @@ type WebServer struct { const indexFilename = "index.html" -// NewWebServer creates an instance of WebServer -func NewWebServer(ctx *Context) *WebServer { +// WebServerConstructor creates an instance of WebServer +func WebServerConstructor(ctx *Context) *WebServer { // Setup logging for gin router if ctx.Log.Level == logrus.DebugLevel { @@ -127,6 +127,7 @@ func (s *WebServer) Serve() error { case <-s.stop: // Shutting down permanently s.sessions.Stop() + s.sdks.Stop() s.Log.Infoln("shutting down (stop)") case err = <-serveError: // Error due to listen/serve failure @@ -182,11 +183,12 @@ 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.sessions.UpdateIOSocket(sess.ID, &so) + sessID := sess.ID + s.Log.Debugf("WS Connected (sessID=%v, SID=%v)", sessID, so.Id()) + s.sessions.UpdateIOSocket(sessID, &so) so.On("disconnection", func() { - s.Log.Debugf("WS disconnected (SID=%v)", so.Id()) + s.Log.Debugf("WS disconnected (sessID=%v, SID=%v)", sessID, so.Id()) s.sessions.UpdateIOSocket(sess.ID, nil) }) })