diff options
| author | gcohen | 2013-10-08 18:43:16 -0700 |
|---|---|---|
| committer | gcohen | 2013-10-08 18:43:16 -0700 |
| commit | cb4b18841fa719ce982b06002889831aedd287ac (patch) | |
| tree | 81bf5d1ee8eb06281bedf80e440a1249cf7781a0 /python-tornado/unassembled/Platform.py | |
| parent | aaca8fb7cd2f6534cd87fc23efc82d2128b05e13 (diff) | |
| parent | 52c51378b4647911a64c8d4b1c759756d4930d4b (diff) | |
| download | pubnub-python-cb4b18841fa719ce982b06002889831aedd287ac.tar.bz2 | |
Merge branch 'TR-89.88.56.47.55'
Conflicts:
.gitignore
Diffstat (limited to 'python-tornado/unassembled/Platform.py')
| -rw-r--r-- | python-tornado/unassembled/Platform.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/python-tornado/unassembled/Platform.py b/python-tornado/unassembled/Platform.py new file mode 100644 index 0000000..7565fd2 --- /dev/null +++ b/python-tornado/unassembled/Platform.py @@ -0,0 +1,67 @@ +import tornado.httpclient + +try: + from hashlib import sha256 + digestmod = sha256 +except ImportError: + import Crypto.Hash.SHA256 as digestmod + sha256 = digestmod.new + +import hmac +import tornado.ioloop +from tornado.stack_context import ExceptionStackContext +from PubnubCrypto import PubnubCrypto + +ioloop = tornado.ioloop.IOLoop.instance() + +class Pubnub(PubnubCoreAsync): + + def stop(self): ioloop.stop() + def start(self): ioloop.start() + def timeout( self, delay, callback): + ioloop.add_timeout( time.time()+float(delay), callback ) + + def __init__( + self, + publish_key, + subscribe_key, + secret_key = False, + cipher_key = False, + ssl_on = False, + origin = 'pubsub.pubnub.com' + ) : + super(Pubnub, self).__init__( + publish_key=publish_key, + subscribe_key=subscribe_key, + secret_key=secret_key, + cipher_key=cipher_key, + ssl_on=ssl_on, + origin=origin, + ) + self.headers = {} + self.headers['User-Agent'] = 'Python-Tornado' + self.headers['Accept-Encoding'] = self.accept_encoding + self.headers['V'] = self.version + self.http = tornado.httpclient.AsyncHTTPClient(max_clients=1000) + + def _request( self, request, callback ) : + url = self.getUrl(request) + ## Send Request Expecting JSON Response + #print self.headers + + request = tornado.httpclient.HTTPRequest( url, 'GET', self.headers, connect_timeout=10, request_timeout=310 ) + + def responseCallback(response): + def handle_exc(*args): + return True + if response.error is not None: + with ExceptionStackContext(handle_exc): + response.rethrow() + elif callback: + callback(eval(response._get_body())) + + self.http.fetch( + request, + callback=responseCallback, + ) + |
