increases timeout
This commit is contained in:
@@ -15,14 +15,17 @@ import (
|
||||
type Server struct {
|
||||
pbpusher.UnimplementedPusherServiceServer
|
||||
|
||||
ctx context.Context // server-scoped context for graceful shutdown
|
||||
hub *Hub
|
||||
bridge *RedisBridge
|
||||
authSvc auth.AuthService
|
||||
}
|
||||
|
||||
// NewServer creates a new pusher server.
|
||||
func NewServer(hub *Hub, bridge *RedisBridge, authSvc auth.AuthService) *Server {
|
||||
// NewServer creates a new pusher server. The ctx controls the lifetime of all
|
||||
// WebSocket connections — when cancelled, all connections are closed gracefully.
|
||||
func NewServer(ctx context.Context, hub *Hub, bridge *RedisBridge, authSvc auth.AuthService) *Server {
|
||||
return &Server{
|
||||
ctx: ctx,
|
||||
hub: hub,
|
||||
bridge: bridge,
|
||||
authSvc: authSvc,
|
||||
@@ -59,7 +62,10 @@ func (s *Server) HandleWebSocket(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
slog.Info("websocket connected", "connId", connID, "humanId", session.HumanId)
|
||||
|
||||
ctx, cancel := context.WithCancel(r.Context())
|
||||
// Use server context, NOT r.Context(). After WebSocket upgrade, the HTTP
|
||||
// request context can be cancelled by load balancers or Go's HTTP server,
|
||||
// and nhooyr/websocket permanently closes the conn on any context error.
|
||||
ctx, cancel := context.WithCancel(s.ctx)
|
||||
defer cancel()
|
||||
|
||||
// Auto-subscribe to presence channel so this user appears online
|
||||
|
||||
Reference in New Issue
Block a user