Fix memory leak with websocket not removing unused listeners
This commit is contained in:
parent
0b761320cc
commit
f0d6f67c6b
|
@ -52,16 +52,15 @@ func (h *Handler) ListenForServerEvents(ctx context.Context) {
|
|||
h.server.Events().Subscribe(event, eventChannel)
|
||||
}
|
||||
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
for _, event := range events {
|
||||
h.server.Events().Unsubscribe(event, eventChannel)
|
||||
}
|
||||
for d := range eventChannel {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
for _, event := range events {
|
||||
h.server.Events().Unsubscribe(event, eventChannel)
|
||||
}
|
||||
|
||||
close(eventChannel)
|
||||
default:
|
||||
// Listen for different events emitted by the server and respond to them appropriately.
|
||||
for d := range eventChannel {
|
||||
close(eventChannel)
|
||||
default:
|
||||
h.SendJson(&Message{
|
||||
Event: d.Topic,
|
||||
Args: []string{d.Data},
|
||||
|
|
Loading…
Reference in New Issue
Block a user