From 960f5c1c206d3cb7d507ca2a293422d9ce529a7f Mon Sep 17 00:00:00 2001 From: Mark Smith Date: Wed, 8 Jun 2022 10:01:51 +0100 Subject: [PATCH 1/2] updating sockets lib to be less chatty --- cmd/internal/setup.go | 2 -- go.mod | 2 +- go.sum | 7 ++--- .../github.com/theflyingcodr/sockets/Makefile | 2 +- .../theflyingcodr/sockets/internal/sockets.go | 6 ++++ .../theflyingcodr/sockets/server/server.go | 28 ++++++++----------- vendor/modules.txt | 2 +- 7 files changed, 23 insertions(+), 26 deletions(-) diff --git a/cmd/internal/setup.go b/cmd/internal/setup.go index e517166..1ee4799 100644 --- a/cmd/internal/setup.go +++ b/cmd/internal/setup.go @@ -143,8 +143,6 @@ func SetupHybrid(cfg config.Config, l log.Logger, e *echo.Echo) *server.SocketSe dppHandlers.NewPaymentRequestHandler(paymentReqSvc).RegisterRoutes(g) dppHandlers.NewProofs(proofsSvc).RegisterRoutes(g) dppSoc.NewHealthHandler().Register(s) - dppSoc.NewPaymentRequest().Register(s) - dppSoc.NewPayment().Register(s) e.GET("/ws/:channelID", wsHandler(s)) return s diff --git a/go.mod b/go.mod index 8a7252c..fa2926c 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/swaggo/swag v1.8.1 github.com/theflyingcodr/govalidator v0.1.3 github.com/theflyingcodr/lathos v0.0.6 - github.com/theflyingcodr/sockets v0.0.11-beta.0.20220222160101-76100ef886b5 + github.com/theflyingcodr/sockets v0.0.12-beta ) require ( diff --git a/go.sum b/go.sum index 1c9ff2f..0513d58 100644 --- a/go.sum +++ b/go.sum @@ -231,7 +231,6 @@ github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/Oth github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= @@ -292,7 +291,6 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/labstack/echo/v4 v4.1.14/go.mod h1:Q5KZ1vD3V5FEzjM79hjwVrC3ABr7F5IdM23bXQMRDGg= -github.com/labstack/echo/v4 v4.6.3/go.mod h1:Hk5OiHj0kDqmFq7aHe7eDqI7CUhuCrfpupQtLGGLm7A= github.com/labstack/echo/v4 v4.7.2 h1:Kv2/p8OaQ+M6Ex4eGimg9b9e6icoxA42JSlOR3msKtI= github.com/labstack/echo/v4 v4.7.2/go.mod h1:xkCDAdFCIf8jsFQ5NnbK7oqaF/yU1A1X20Ltm0OvSks= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= @@ -449,8 +447,8 @@ github.com/theflyingcodr/govalidator v0.1.3 h1:eU8P2xZrU2s1FjbtoVW6yDgXG+g2xDM9p github.com/theflyingcodr/govalidator v0.1.3/go.mod h1:E6v0mkRcAVMTa7pC8VkUOtoE8WQ9zQ4/fOwrvtwhOM0= github.com/theflyingcodr/lathos v0.0.6 h1:xIHMZTinurvodmFOgvSGD+OrDhSj42+Xz+FOXYwEr18= github.com/theflyingcodr/lathos v0.0.6/go.mod h1:68tGFEbAqAzydWDb1KEJZPQY57l3hH32GXO11Hf1zGQ= -github.com/theflyingcodr/sockets v0.0.11-beta.0.20220222160101-76100ef886b5 h1:39/z+O7p2ND6GgvOHZAr7o1gjm6UGls8FCcki8hbXRE= -github.com/theflyingcodr/sockets v0.0.11-beta.0.20220222160101-76100ef886b5/go.mod h1:u4PMKd3yqHkt9Jn0VgQRZ33PG9ynL8/j53csVO1huyk= +github.com/theflyingcodr/sockets v0.0.12-beta h1:5x6+7rQtVN0bEhaWdRm10MMvYdp0DPbHe5sB40DlVBk= +github.com/theflyingcodr/sockets v0.0.12-beta/go.mod h1:lEfw9IoVkWJsuvi5ja5QuusFjfVvpocaJl0RP7iFLRY= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= @@ -577,7 +575,6 @@ golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1 golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210913180222-943fd674d43e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= diff --git a/vendor/github.com/theflyingcodr/sockets/Makefile b/vendor/github.com/theflyingcodr/sockets/Makefile index 3e580c2..0fb0249 100644 --- a/vendor/github.com/theflyingcodr/sockets/Makefile +++ b/vendor/github.com/theflyingcodr/sockets/Makefile @@ -27,7 +27,7 @@ run-linter: @golangci-lint run --deadline=480s --skip-dirs=vendor --tests install-linter: - @curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)bin v1.43.0 + @curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)bin v1.44.2 go-doc-mac: @open http://localhost:6060 && \ diff --git a/vendor/github.com/theflyingcodr/sockets/internal/sockets.go b/vendor/github.com/theflyingcodr/sockets/internal/sockets.go index 7382f4c..3803dec 100644 --- a/vendor/github.com/theflyingcodr/sockets/internal/sockets.go +++ b/vendor/github.com/theflyingcodr/sockets/internal/sockets.go @@ -17,3 +17,9 @@ func WriteJSON(ws *websocket.Conn, timeout time.Duration, payload interface{}) e _ = ws.SetWriteDeadline(time.Now().Add(timeout)) return ws.WriteJSON(payload) } + +// ChannelCheck for sending channel check messages. +type ChannelCheck struct { + ID string + Exists chan bool +} diff --git a/vendor/github.com/theflyingcodr/sockets/server/server.go b/vendor/github.com/theflyingcodr/sockets/server/server.go index 49c145f..e0502a7 100644 --- a/vendor/github.com/theflyingcodr/sockets/server/server.go +++ b/vendor/github.com/theflyingcodr/sockets/server/server.go @@ -12,6 +12,7 @@ import ( "github.com/rs/zerolog/log" "github.com/theflyingcodr/sockets" + "github.com/theflyingcodr/sockets/internal" "github.com/theflyingcodr/sockets/middleware" ) @@ -112,7 +113,7 @@ type SocketServer struct { register chan register channelSender chan sender directSender chan sender - channelChecker chan checker + channelChecker chan internal.ChannelCheck close chan struct{} done chan struct{} channelCloser chan string @@ -143,7 +144,7 @@ func New(opts ...OptFunc) *SocketServer { register: make(chan register, 1), channelSender: make(chan sender, 256), directSender: make(chan sender, 256), - channelChecker: make(chan checker, 256), + channelChecker: make(chan internal.ChannelCheck, 256), close: make(chan struct{}, 1), done: make(chan struct{}, 1), opts: defaults, @@ -166,14 +167,14 @@ func (s *SocketServer) channelManager() { case <-s.close: close(s.channelSender) close(s.directSender) - log.Info().Msg("closing server") + log.Debug().Msg("closing server") for _, c := range s.clientConnections { _ = c.ws.Close() } close(s.unregister) close(s.register) - log.Info().Msg("connections terminated") + log.Debug().Msg("connections terminated") s.done <- struct{}{} return case u := <-s.unregister: @@ -262,7 +263,7 @@ func (s *SocketServer) channelManager() { } case c := <-s.channelChecker: _, ok := s.channels[c.ID] - c.exists <- ok + c.Exists <- ok case <-ticker.C: for channelID, channel := range s.channels { if channel.expires.IsZero() { // doesn't expire @@ -338,7 +339,7 @@ func (s *SocketServer) Listen(conn *websocket.Conn, channelID string) error { conn.SetPongHandler(func(string) error { _ = conn.SetReadDeadline(time.Now().Add(s.opts.pongWait)); return nil }) clientID := uuid.NewString() - log.Info().Msgf("receiving new connection with clientID %s", clientID) + log.Debug().Msgf("receiving new connection with clientID %s", clientID) c := &connection{ ws: conn, send: make(chan interface{}, 256), @@ -370,16 +371,16 @@ func (s *SocketServer) Listen(conn *websocket.Conn, channelID string) error { } s.BroadcastDirect(clientID, sockets.NewMessage(sockets.MessageJoinSuccess, clientID, channelID)) - log.Info().Msgf("connection with clientID %s added, listening for messages", clientID) + log.Debug().Msgf("connection with clientID %s added, listening for messages", clientID) for { var m *sockets.Message if err := conn.ReadJSON(&m); err != nil { - log.Debug().Msg("clsoe error received, handling") + log.Debug().Msg("close error received, handling") if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseNormalClosure) { log.Error().Msgf("unexpected client %s close error: %v", clientID, err) } else { - log.Info().Msgf("client %s closed connection, exiting listener", clientID) + log.Debug().Msgf("client %s closed connection, exiting listener", clientID) } s.unregisterClient(channelID, clientID) break @@ -491,9 +492,9 @@ func (s *SocketServer) HasChannel(channelID string) bool { exists := make(chan bool) defer close(exists) - s.channelChecker <- checker{ + s.channelChecker <- internal.ChannelCheck{ ID: channelID, - exists: exists, + Exists: exists, } result := <-exists @@ -545,8 +546,3 @@ type sender struct { ID string msg interface{} } - -type checker struct { - ID string - exists chan bool -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 905c36c..f857383 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -198,7 +198,7 @@ github.com/theflyingcodr/govalidator ## explicit; go 1.17 github.com/theflyingcodr/lathos github.com/theflyingcodr/lathos/errs -# github.com/theflyingcodr/sockets v0.0.11-beta.0.20220222160101-76100ef886b5 +# github.com/theflyingcodr/sockets v0.0.12-beta ## explicit; go 1.17 github.com/theflyingcodr/sockets github.com/theflyingcodr/sockets/internal From 63ee0f23c74a6b0dbb571ea1697d789426ed06a9 Mon Sep 17 00:00:00 2001 From: Mark Smith Date: Thu, 9 Jun 2022 12:25:06 +0100 Subject: [PATCH 2/2] tweaking logger to only output in debug mode --- cmd/internal/setup.go | 8 ++++++-- cmd/server/main.go | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cmd/internal/setup.go b/cmd/internal/setup.go index 1ee4799..70bc5b8 100644 --- a/cmd/internal/setup.go +++ b/cmd/internal/setup.go @@ -70,13 +70,17 @@ func SetupDeps(cfg config.Config, l log.Logger) *Deps { } // SetupEcho will set up and return an echo server. -func SetupEcho(l log.Logger) *echo.Echo { +func SetupEcho(cfg *config.Config, l log.Logger) *echo.Echo { e := echo.New() e.HideBanner = true // Middleware e.Use(middleware.Recover()) - e.Use(middleware.Logger()) + e.Use(middleware.LoggerWithConfig(middleware.LoggerConfig{ + Skipper: func(c echo.Context) bool { + return cfg.Logging.Level != config.LogDebug + }, + })) e.Use(middleware.RequestID()) e.Use(middleware.CORSWithConfig(middleware.CORSConfig{ AllowOrigins: []string{"*"}, diff --git a/cmd/server/main.go b/cmd/server/main.go index 47370bf..276cf79 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -57,7 +57,7 @@ func main() { log.Fatal(err, "config error") } - e := internal.SetupEcho(log) + e := internal.SetupEcho(cfg,log) if cfg.Server.SwaggerEnabled { internal.SetupSwagger(*cfg.Server, e)