From d6bc080d6bf42e1fb9c0198ed70b8e4c11e004da Mon Sep 17 00:00:00 2001 From: Tai Groot Date: Thu, 8 Apr 2021 21:23:28 -0700 Subject: [PATCH] Adds simple websocket based on mux --- ws/server.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ws/server.go diff --git a/ws/server.go b/ws/server.go new file mode 100644 index 0000000..3d24680 --- /dev/null +++ b/ws/server.go @@ -0,0 +1,35 @@ +package ws + +import ( + "encoding/json" + "net/http" + + "github.com/gorilla/websocket" + "github.com/taigrr/log-socket/logger" +) + +// var addr = flag.String("addr", "localhost:8080", "http service address") + +var upgrader = websocket.Upgrader{} // use default options + +func LogSocketHandler(w http.ResponseWriter, r *http.Request) { + c, err := upgrader.Upgrade(w, r, nil) + if err != nil { + logger.Error("upgrade:", err) + return + } + defer c.Close() + lc := logger.CreateClient() + defer lc.Destroy() + lc.SetLogLevel(logger.LTrace) + logger.Info("Websocket client attached.") + for { + logEvent := lc.Get() + logJSON, err := json.Marshal(logEvent) + err = c.WriteMessage(websocket.TextMessage, logJSON) + if err != nil { + logger.Error("write:", err) + break + } + } +}