Skip to content

Commit a121c30

Browse files
authored
fix: ensure complete event is sent only for connected clients in HandleSubscription (#196)
1 parent 9d15dde commit a121c30

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

gateway/gateway/graphql/graphql.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,12 @@ func (s *GraphQLServer) HandleSubscription(w http.ResponseWriter, r *http.Reques
101101
}
102102
}
103103

104-
if _, err := fmt.Fprint(w, "event: complete\n\n"); err != nil {
105-
logger.V(4).Error(err, "Failed to write SSE complete event")
104+
// Only send the complete event if the client is still connected.
105+
select {
106+
case <-r.Context().Done():
107+
default:
108+
if _, err := fmt.Fprint(w, "event: complete\n\n"); err != nil {
109+
logger.V(4).Error(err, "Failed to write SSE complete event")
110+
}
106111
}
107112
}

0 commit comments

Comments
 (0)