User custom websocket writter

This commit is contained in:
jimmy 2022-09-21 13:25:45 +12:00
parent 2ba2a4ba19
commit 7656ca80c5
1 changed files with 6 additions and 7 deletions

View File

@ -1,7 +1,7 @@
package controllers package controllers
import ( import (
"bytes" "io"
"log" "log"
"magmise/models" "magmise/models"
"net/http" "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) { func (c Container) Logs(w http.ResponseWriter, r *http.Request) {
name := chi.URLParam(r, "name") name := chi.URLParam(r, "name")
if name == "" { if name == "" {
http.Error(w, "Missing container name", http.StatusNotFound) http.Error(w, "Missing container name", http.StatusNotFound)
return return
} }
log.Println("Logs ", name)
id, err := models.GetId(name) id, err := models.GetId(name)
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusNotFound) http.Error(w, err.Error(), http.StatusNotFound)
return return
} }
ws, err := upgrader.Upgrade(w, r, nil) ws, err := Websocket(w, r)
if err != nil { if err != nil {
log.Print("upgrade:", err) log.Print("upgrade:", err)
return return
@ -65,10 +67,7 @@ func (c Container) Logs(w http.ResponseWriter, r *http.Request) {
http.Error(w, err.Error(), http.StatusNotFound) http.Error(w, err.Error(), http.StatusNotFound)
return return
} }
buf := new(bytes.Buffer) defer logs.Close()
for { io.Copy(ws, logs)
buf.ReadFrom(logs)
ws.WriteMessage(0, buf.Bytes())
}
} }