Fix: freezes
This commit is contained in:
@ -59,7 +59,7 @@ func (broker *Broker) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
w.Header().Set("Access-Control-Allow-Origin", origin)
|
w.Header().Set("Access-Control-Allow-Origin", origin)
|
||||||
w.Header().Set("Access-Control-Allow-Credentials", "true")
|
w.Header().Set("Access-Control-Allow-Credentials", "true")
|
||||||
messageChan := make(NotifierChan)
|
messageChan := make(NotifierChan, 10) // Buffered channel
|
||||||
broker.newClients <- messageChan
|
broker.newClients <- messageChan
|
||||||
defer func() { broker.closingClients <- messageChan }()
|
defer func() { broker.closingClients <- messageChan }()
|
||||||
ctx := r.Context()
|
ctx := r.Context()
|
||||||
@ -81,7 +81,7 @@ func (broker *Broker) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
w.(http.Flusher).Flush()
|
w.(http.Flusher).Flush()
|
||||||
case <-heartbeat.C:
|
case <-heartbeat.C:
|
||||||
// Send SSE heartbeat comment
|
// Send SSE heartbeat comment
|
||||||
if _, err := w.Write([]byte(": heartbeat\n\n")); err != nil {
|
if _, err := fmt.Fprint(w, ":\n\n"); err != nil {
|
||||||
return // Client disconnected
|
return // Client disconnected
|
||||||
}
|
}
|
||||||
w.(http.Flusher).Flush()
|
w.(http.Flusher).Flush()
|
||||||
|
Reference in New Issue
Block a user