Merge pull request #1447 from dongluochen/eventsConnection

Close tcp connection when client stops '/events' request.
This commit is contained in:
Victor Vieux 2015-11-25 16:57:48 -08:00
commit 088ad94a61
1 changed files with 8 additions and 0 deletions

View File

@ -46,8 +46,16 @@ func (eh *eventsHandler) Wait(remoteAddr string, until int64) {
timer = time.NewTimer(dur) timer = time.NewTimer(dur)
} }
// subscribe to http client close event
w := eh.ws[remoteAddr]
var closeNotify <-chan bool
if closeNotifier, ok := w.(http.CloseNotifier); ok {
closeNotify = closeNotifier.CloseNotify()
}
select { select {
case <-eh.cs[remoteAddr]: case <-eh.cs[remoteAddr]:
case <-closeNotify:
case <-timer.C: // `--until` timeout case <-timer.C: // `--until` timeout
close(eh.cs[remoteAddr]) close(eh.cs[remoteAddr])
} }