Display Console
This commit is contained in:
@@ -9,6 +9,9 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
|
||||
type ProgressInfo struct {
|
||||
@@ -354,3 +357,42 @@ func updateProgress(filename string, value float64, currentFile string) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var upgrader = websocket.Upgrader{}
|
||||
var clients = make(map[*websocket.Conn]bool)
|
||||
var mu sync.Mutex
|
||||
|
||||
func handleWebSocket(w http.ResponseWriter, r *http.Request) {
|
||||
conn, err := upgrader.Upgrade(w, r, nil)
|
||||
if err != nil {
|
||||
fmt.Println("Error while upgrading connection:", err)
|
||||
return
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
mu.Lock()
|
||||
clients[conn] = true
|
||||
mu.Unlock()
|
||||
|
||||
for {
|
||||
if _, _, err := conn.NextReader(); err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
mu.Lock()
|
||||
delete(clients, conn)
|
||||
mu.Unlock()
|
||||
}
|
||||
|
||||
func broadcast(message []byte) {
|
||||
mu.Lock()
|
||||
defer mu.Unlock()
|
||||
|
||||
for client := range clients {
|
||||
if err := client.WriteMessage(websocket.TextMessage, message); err != nil {
|
||||
client.Close()
|
||||
delete(clients, client)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user