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 13, 2021
2 parents 6660e07 + 77a8e0e commit fcf1d6c
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 @@ -402,6 +427,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 @@ -515,6 +541,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 @@ -832,6 +859,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 @@ -895,6 +923,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 fcf1d6c

Please sign in to comment.