From efd1247ed9ed61a61d6840dc2c8c92ab02031afb Mon Sep 17 00:00:00 2001 From: Eugnee <77396838+Eugnee@users.noreply.github.com> Date: Tue, 22 Jul 2025 20:44:15 +0300 Subject: [PATCH] channel was not properly initialized in several pubsub client managers (#1476) --- src/socketio/async_aiopika_manager.py | 2 +- src/socketio/async_redis_manager.py | 2 +- src/socketio/redis_manager.py | 2 +- src/socketio/zmq_manager.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/socketio/async_aiopika_manager.py b/src/socketio/async_aiopika_manager.py index b6f09b8..003b67b 100644 --- a/src/socketio/async_aiopika_manager.py +++ b/src/socketio/async_aiopika_manager.py @@ -43,12 +43,12 @@ class AsyncAioPikaManager(AsyncPubSubManager): # pragma: no cover raise RuntimeError('aio_pika package is not installed ' '(Run "pip install aio_pika" in your ' 'virtualenv).') + super().__init__(channel=channel, write_only=write_only, logger=logger) self.url = url self._lock = asyncio.Lock() self.publisher_connection = None self.publisher_channel = None self.publisher_exchange = None - super().__init__(channel=channel, write_only=write_only, logger=logger) async def _connection(self): return await aio_pika.connect_robust(self.url) diff --git a/src/socketio/async_redis_manager.py b/src/socketio/async_redis_manager.py index cc82f4a..92109a2 100644 --- a/src/socketio/async_redis_manager.py +++ b/src/socketio/async_redis_manager.py @@ -52,10 +52,10 @@ class AsyncRedisManager(AsyncPubSubManager): # pragma: no cover '(Run "pip install redis" in your virtualenv).') if not hasattr(aioredis.Redis, 'from_url'): raise RuntimeError('Version 2 of aioredis package is required.') + super().__init__(channel=channel, write_only=write_only, logger=logger) self.redis_url = url self.redis_options = redis_options or {} self._redis_connect() - super().__init__(channel=channel, write_only=write_only, logger=logger) def _redis_connect(self): if not self.redis_url.startswith('redis+sentinel://'): diff --git a/src/socketio/redis_manager.py b/src/socketio/redis_manager.py index df98618..c4407df 100644 --- a/src/socketio/redis_manager.py +++ b/src/socketio/redis_manager.py @@ -75,10 +75,10 @@ class RedisManager(PubSubManager): # pragma: no cover raise RuntimeError('Redis package is not installed ' '(Run "pip install redis" in your ' 'virtualenv).') + super().__init__(channel=channel, write_only=write_only, logger=logger) self.redis_url = url self.redis_options = redis_options or {} self._redis_connect() - super().__init__(channel=channel, write_only=write_only, logger=logger) def initialize(self): super().initialize() diff --git a/src/socketio/zmq_manager.py b/src/socketio/zmq_manager.py index 468dc26..aa5a49a 100644 --- a/src/socketio/zmq_manager.py +++ b/src/socketio/zmq_manager.py @@ -57,6 +57,7 @@ class ZmqManager(PubSubManager): # pragma: no cover if not (url.startswith('zmq+tcp://') and r.search(url)): raise RuntimeError('unexpected connection string: ' + url) + super().__init__(channel=channel, write_only=write_only, logger=logger) url = url.replace('zmq+', '') (sink_url, sub_port) = url.split('+') sink_port = sink_url.split(':')[-1] @@ -72,7 +73,6 @@ class ZmqManager(PubSubManager): # pragma: no cover self.sink = sink self.sub = sub self.channel = channel - super().__init__(channel=channel, write_only=write_only, logger=logger) def _publish(self, data): pickled_data = pickle.dumps(