Fix broadcast

This commit is contained in:
2024-06-20 17:46:43 +02:00
parent 0174f3d9b9
commit b6e7040662

View File

@@ -14,6 +14,7 @@ import (
var upgrader = websocket.Upgrader{}
var wsBroadcast = make(chan string, 128)
var connections = make(map[*WSConnection]bool)
const TIMEOUT = 6
const IDLE_TIMEOUT = TIMEOUT * time.Second
@@ -91,6 +92,8 @@ func (ws *WSConnection) Open() {
return nil
})
connections[ws] = true
go ws.messageReader()
go ws.messageSender()
go ws.pinger()
@@ -100,9 +103,10 @@ func (ws *WSConnection) Open() {
case err := <-ws.ErrorChan:
log.Printf("Error: %v", err)
ws.conn.Close()
connections[ws] = false
return
case msg := <-wsBroadcast:
ws.WriteChan <- msg
// case msg := <-wsBroadcast:
// ws.WriteChan <- msg
}
}
}()
@@ -142,7 +146,12 @@ func handleDownload(responseWriter http.ResponseWriter, request *http.Request) {
}
log.Printf("Received download request: %s, %d in channel", req.Link, len(wsBroadcast))
wsBroadcast <- req.Link
go func() {
for ws := range connections {
ws.WriteChan <- req.Link
}
}()
// wsBroadcast <- req.Link
}
func main() {