diff --git a/relay.go b/relay.go index 8a0584f..38dad3b 100644 --- a/relay.go +++ b/relay.go @@ -364,8 +364,11 @@ func (r *Relay) Subscribe(ctx context.Context, filter Filter, opts SubscriptionO } go func() { - <-r.connection.closedNotify - sub.unsub(ErrDisconnected) + select { + case <-r.connection.closedNotify: + sub.unsub(ErrDisconnected) + case <-ctx.Done(): + } }() return sub, nil