mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
use health ping on sse channels
This commit is contained in:
parent
aded0a30fc
commit
ed55ea713b
@ -35,8 +35,6 @@ export default class SSEManager {
|
||||
channel = this.createChannel(channelId)
|
||||
}
|
||||
|
||||
channel.clients.add(req)
|
||||
|
||||
res.setHeader("Content-Type", "text/event-stream")
|
||||
res.setHeader("Cache-Control", "no-cache")
|
||||
res.setHeader("Connection", "keep-alive")
|
||||
@ -47,6 +45,14 @@ export default class SSEManager {
|
||||
event: "connected",
|
||||
})
|
||||
|
||||
req.healthPingInterval = setInterval(() => {
|
||||
this.writeJSONToResponse(res, {
|
||||
event: "ping",
|
||||
})
|
||||
}, 5000)
|
||||
|
||||
channel.clients.add(req)
|
||||
|
||||
if (channel.cache.length > 0) {
|
||||
for (const oldData of channel.cache) {
|
||||
this.writeJSONToResponse(res, oldData)
|
||||
@ -62,6 +68,8 @@ export default class SSEManager {
|
||||
})
|
||||
|
||||
req.on("close", () => {
|
||||
clearInterval(req.healthPingInterval)
|
||||
|
||||
channel.clients.delete(req)
|
||||
|
||||
if (channel.clients.size === 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user