From a71d2d8d314e41c80cb6422ac22a9fa760f20652 Mon Sep 17 00:00:00 2001 From: bumbar1 Date: Thu, 22 Sep 2016 17:07:35 +0200 Subject: [PATCH] added cluster option --- pusherclient/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pusherclient/__init__.py b/pusherclient/__init__.py index acd5ec9..fc73794 100755 --- a/pusherclient/__init__.py +++ b/pusherclient/__init__.py @@ -16,17 +16,18 @@ class Pusher(object): host = "ws.pusherapp.com" + cluster_host = "ws-%s.pusher.com" client_id = 'PythonPusherClient' protocol = 6 - def __init__(self, key, secure=True, secret=None, user_data=None, log_level=logging.INFO, daemon=True, port=None, reconnect_interval=10): + def __init__(self, key, secure=True, secret=None, user_data=None, log_level=logging.INFO, daemon=True, port=None, reconnect_interval=10, cluster=None): self.key = key self.secret = secret self.user_data = user_data or {} self.channels = {} - self.url = self._build_url(key, secure, port) + self.url = self._build_url(key, secure, port, cluster) self.connection = Connection(self._connection_handler, self.url, log_level=log_level, daemon=daemon, reconnect_interval=reconnect_interval) @@ -123,7 +124,7 @@ def _generate_presence_key(socket_id, key, channel_name, secret, user_data): return auth_key @classmethod - def _build_url(cls, key, secure, port=None): + def _build_url(cls, key, secure, port=None, cluster=None): path = "/app/%s?client=%s&version=%s&protocol=%s" % ( key, cls.client_id, @@ -142,9 +143,14 @@ def _build_url(cls, key, secure, port=None): else: port = 80 + if cluster: + host = cls.cluster_host % cluster + else: + host = cls.host + return "%s://%s:%s%s" % ( proto, - cls.host, + host, port, path )