X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsserver%2Fwebserver.go;h=24456b9b8d74afa0d9042498cd5ccaec1b11eb39;hb=65e09e831cf13343ac713fbf15281174d1f13a94;hp=ddedd6df214b378e7185440986c24c6b1d65c01d;hpb=5c1d023f41472660952ee559e2484cd6bbe688d3;p=src%2Fxds%2Fxds-server.git diff --git a/lib/xdsserver/webserver.go b/lib/xdsserver/webserver.go index ddedd6d..24456b9 100644 --- a/lib/xdsserver/webserver.go +++ b/lib/xdsserver/webserver.go @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2017-2018 "IoT.bzh" + * Author Sebastien Douheret + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package xdsserver import ( @@ -11,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 . @@ -26,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 { @@ -110,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 @@ -165,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) }) })