mirror of
https://github.com/harness/drone.git
synced 2025-05-22 03:49:54 +08:00
prevent hanging event source connections
This commit is contained in:
parent
b3951043a0
commit
2e9786c68e
@ -88,12 +88,16 @@
|
|||||||
|
|
||||||
events = new EventSource("/api/stream/" + repo + "?access_token=" + token, { withCredentials: true });
|
events = new EventSource("/api/stream/" + repo + "?access_token=" + token, { withCredentials: true });
|
||||||
events.onmessage = function (event) {
|
events.onmessage = function (event) {
|
||||||
console.log(event);
|
|
||||||
if (callback !== undefined) {
|
if (callback !== undefined) {
|
||||||
callback(angular.fromJson(event.data));
|
callback(angular.fromJson(event.data));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
events.onerror = function (event) {
|
events.onerror = function (event) {
|
||||||
|
callback = undefined;
|
||||||
|
if (events !== undefined) {
|
||||||
|
events.close();
|
||||||
|
events = undefined;
|
||||||
|
}
|
||||||
console.log('user event stream closed due to error.', event);
|
console.log('user event stream closed due to error.', event);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -49,8 +49,10 @@ func GetRepoEvents(c *gin.Context) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
c.Stream(func(w io.Writer) bool {
|
c.Stream(func(w io.Writer) bool {
|
||||||
event := <-eventc
|
select {
|
||||||
|
case event := <-eventc:
|
||||||
if event == nil {
|
if event == nil {
|
||||||
|
log.Infof("nil event received")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if event.Kind == eventbus.EventRepo &&
|
if event.Kind == eventbus.EventRepo &&
|
||||||
@ -59,7 +61,9 @@ func GetRepoEvents(c *gin.Context) {
|
|||||||
json.Unmarshal(event.Msg, &d)
|
json.Unmarshal(event.Msg, &d)
|
||||||
c.SSEvent("message", d)
|
c.SSEvent("message", d)
|
||||||
}
|
}
|
||||||
|
case <-c.Writer.CloseNotify():
|
||||||
|
return false
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user