From 7656ca80c5c2919d008475be8bbda4baf0af17a0 Mon Sep 17 00:00:00 2001 From: jimmy Date: Wed, 21 Sep 2022 13:25:45 +1200 Subject: [PATCH] User custom websocket writter --- api/controllers/container.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/api/controllers/container.go b/api/controllers/container.go index d8e634a..72985a1 100644 --- a/api/controllers/container.go +++ b/api/controllers/container.go @@ -1,7 +1,7 @@ package controllers import ( - "bytes" + "io" "log" "magmise/models" "net/http" @@ -44,17 +44,19 @@ func (c Container) Stop(w http.ResponseWriter, r *http.Request) { } func (c Container) Logs(w http.ResponseWriter, r *http.Request) { + name := chi.URLParam(r, "name") if name == "" { http.Error(w, "Missing container name", http.StatusNotFound) return } + log.Println("Logs ", name) id, err := models.GetId(name) if err != nil { http.Error(w, err.Error(), http.StatusNotFound) return } - ws, err := upgrader.Upgrade(w, r, nil) + ws, err := Websocket(w, r) if err != nil { log.Print("upgrade:", err) return @@ -65,10 +67,7 @@ func (c Container) Logs(w http.ResponseWriter, r *http.Request) { http.Error(w, err.Error(), http.StatusNotFound) return } - buf := new(bytes.Buffer) - for { + defer logs.Close() + io.Copy(ws, logs) - buf.ReadFrom(logs) - ws.WriteMessage(0, buf.Bytes()) - } }