From c86a57578630c1583e94a43701c72f75ef6c4051 Mon Sep 17 00:00:00 2001 From: Burak Yildiz <0byldz@gmail.com> Date: Sun, 16 Apr 2023 16:57:24 +0200 Subject: [PATCH 1/2] fix reconnect handler --- src/pysher/pusher.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/pysher/pusher.py b/src/pysher/pusher.py index 20046e7..5977c23 100644 --- a/src/pysher/pusher.py +++ b/src/pysher/pusher.py @@ -109,7 +109,7 @@ def subscribe(self, channel_name, auth=None): self.connection.send_event('pusher:subscribe', data) - self.channels[channel_name] = Channel(channel_name, self.connection) + self.channels[channel_name] = Channel(channel_name, self.connection, auth) return self.channels[channel_name] @@ -147,12 +147,7 @@ def _connection_handler(self, event_name, data, channel_name): def _reconnect_handler(self): """Handle a reconnect.""" for channel_name, channel in self.channels.items(): - data = {'channel': channel_name} - - if channel.auth: - data['auth'] = channel.auth - - self.connection.send_event('pusher:subscribe', data) + self.subscribe(channel_name, channel.auth) def _generate_auth_token(self, channel_name): """Generate a token for authentication with the given channel. From 2511e01465b39087adea5eff287a4391cf23e091 Mon Sep 17 00:00:00 2001 From: Burak Yildiz <0byldz@gmail.com> Date: Wed, 2 Aug 2023 01:35:44 +0200 Subject: [PATCH 2/2] fix auto_sub mechanism --- src/pysher/pusher.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/pysher/pusher.py b/src/pysher/pusher.py index 5977c23..a4dedd6 100644 --- a/src/pysher/pusher.py +++ b/src/pysher/pusher.py @@ -97,6 +97,12 @@ def subscribe(self, channel_name, auth=None): :param str auth: The token to use if authenticated externally. :rtype: pysher.Channel """ + self._subscribe(channel_name, auth) + self.channels[channel_name] = Channel(channel_name, self.connection, auth) + + return self.channels[channel_name] + + def _subscribe(self, channel_name, auth=None): data = {'channel': channel_name} if auth is None: if channel_name.startswith('presence-'): @@ -109,10 +115,6 @@ def subscribe(self, channel_name, auth=None): self.connection.send_event('pusher:subscribe', data) - self.channels[channel_name] = Channel(channel_name, self.connection, auth) - - return self.channels[channel_name] - def unsubscribe(self, channel_name): """Unsubscribe from a channel @@ -147,7 +149,7 @@ def _connection_handler(self, event_name, data, channel_name): def _reconnect_handler(self): """Handle a reconnect.""" for channel_name, channel in self.channels.items(): - self.subscribe(channel_name, channel.auth) + self._subscribe(channel_name, channel.auth) def _generate_auth_token(self, channel_name): """Generate a token for authentication with the given channel.