Add test of websocket interface

This commit is contained in:
Martin Boehm 2019-05-24 15:30:10 +02:00
parent 8cd94070ce
commit 42d3ecdd41
2 changed files with 235 additions and 8 deletions

File diff suppressed because one or more lines are too long

View File

@ -300,6 +300,18 @@ var requestHandlers = map[string]func(*WebsocketServer, *websocketChannel, *webs
}, },
} }
func sendResponse(c *websocketChannel, req *websocketReq, data interface{}) {
defer func() {
if r := recover(); r != nil {
glog.Error("Client ", c.id, ", onRequest ", req.Method, " recovered from panic: ", r)
}
}()
c.out <- &websocketRes{
ID: req.ID,
Data: data,
}
}
func (s *WebsocketServer) onRequest(c *websocketChannel, req *websocketReq) { func (s *WebsocketServer) onRequest(c *websocketChannel, req *websocketReq) {
var err error var err error
var data interface{} var data interface{}
@ -313,10 +325,7 @@ func (s *WebsocketServer) onRequest(c *websocketChannel, req *websocketReq) {
} }
// nil data means no response // nil data means no response
if data != nil { if data != nil {
c.out <- &websocketRes{ sendResponse(c, req, data)
ID: req.ID,
Data: data,
}
} }
}() }()
t := time.Now() t := time.Now()