Skip to content
  • Nathan Harris's avatar
    Change RedisConnection to end subscriptions when not allowed · 61cc879e
    Nathan Harris authored
    Motivation:
    
    When `RedisConnection.allowSubscriptions` is set to `false`, the connection could still be in a subscription state
    leaving further commands to fail slowly from a full roundtrip to Redis, rather than succeeding as expected.
    
    This changes the implementation so that it triggers a full unsubscribe from patterns and channels when set to `false`.
    
    Modifications:
    
    - Change: `RedisConnection.allowSubscriptions` to call `unsubscribe()` and `punsubscribe()` when set to `false`
    - Change: `RedisPubSubHandler` to prefix storage of all dictionary keys to avoid name clashes between pattern and channel subscriptions
    
    Result:
    
    Developers should now have more deterministic and unsurprising behavior with PubSub
    in regards to subscription management and connection state.
    61cc879e