Skip to content

Commit

Permalink
Merge branch 'log_all' into gridx_master_ng
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelbeaumont committed Aug 12, 2021
2 parents 66440ae + 77a8e0e commit 7da7373
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions ws/websocket.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,31 @@ import (
"github.com/gorilla/websocket"
)

type Logger interface {
RecvMessage(id string, data []byte)
SendMessage(id string, data []byte)
}

type VoidLogger struct{}

func (*VoidLogger) RecvMessage(string, []byte) {}

func (*VoidLogger) SendMessage(string, []byte) {}

// The internal verbose logger
var log Logger = &VoidLogger{}

// Sets a custom Logger implementation, allowing the websocket package to log events.
// By default, a VoidLogger is used, so no logs will be sent to any output.
//
// The function panics, if a nil logger is passed.
func SetLogger(logger Logger) {
if logger == nil {
panic("cannot set a nil logger")
}
log = logger
}

const (
// Time allowed to write a message to the peer.
defaultWriteWait = 10 * time.Second
Expand Down Expand Up @@ -396,6 +421,7 @@ func (server *Server) Write(webSocketId string, data []byte) error {
if !ok {
return fmt.Errorf("couldn't write to websocket. No socket with id %v is open", webSocketId)
}
log.SendMessage(webSocketId, data)
ws.outQueue <- data
return nil
}
Expand Down Expand Up @@ -509,6 +535,7 @@ func (server *Server) readPump(ws *WebSocket) {

if server.messageHandler != nil {
var channel Channel = ws
log.RecvMessage(ws.ID(), message)
err = server.messageHandler(channel, message)
if err != nil {
server.error(fmt.Errorf("handling failed for %s: %w", ws.ID(), err))
Expand Down Expand Up @@ -826,6 +853,7 @@ func (client *Client) readPump() {
}

if client.messageHandler != nil {
log.RecvMessage(client.webSocket.ID(), message)
err = client.messageHandler(message)
if err != nil {
client.error(fmt.Errorf("handle failed: %w", err))
Expand Down Expand Up @@ -888,6 +916,7 @@ func (client *Client) Write(data []byte) error {
if !client.IsConnected() {
return fmt.Errorf("client is currently not connected, cannot send data")
}
log.SendMessage(client.webSocket.ID(), data)
client.webSocket.outQueue <- data
return nil
}
Expand Down

0 comments on commit 7da7373

Please sign in to comment.