Fix broadcast
This commit is contained in:
@@ -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() {
|
||||
|
Reference in New Issue
Block a user