Skip to content

Commit 94dcdd3

Browse files
Fixed TornadoChannel
* It was broken by the addition of timeouts, * Fixes #25, * I've also improved the example.
1 parent 872ddd2 commit 94dcdd3

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

examples/tornado_channel.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
#
99
# * Visit http://localhost:8888 in your browser.
1010

11+
import os
1112
import sys
12-
sys.path.append("../")
13+
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
1314

1415
import pusher
1516

@@ -25,10 +26,11 @@
2526
class MainHandler(tornado.web.RequestHandler):
2627
def get(self):
2728
def callback(response):
28-
print "Callback run."
29+
print "Callback run. Response: %s" % repr(response)
2930

3031
p = pusher.Pusher()
31-
p['a_channel'].trigger('an_event', {'some': 'data'}, callback=callback)
32+
# You can receive this event on the app keys page.
33+
p['test_channel'].trigger('my_event', {'message': 'Hello from tornado'}, callback=callback)
3234

3335
self.write("Hello, world")
3436

@@ -38,4 +40,5 @@ def callback(response):
3840

3941
if __name__ == "__main__":
4042
application.listen(8888)
43+
print "Started, visit http://localhost:8888 in your browser to trigger an event"
4144
tornado.ioloop.IOLoop.instance().start()

pusher/__init__.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,15 @@ def send_request_async(self, query_string, data_string):
174174
pass
175175

176176
class TornadoChannel(Channel):
177-
def trigger(self, event, data={}, socket_id=None, callback=None):
177+
def trigger(self, event, data={}, socket_id=None, callback=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
178178
self.callback = callback
179-
return super(TornadoChannel, self).trigger(event, data, socket_id)
179+
return super(TornadoChannel, self).trigger(event, data, socket_id, timeout=timeout)
180180

181-
def send_request(self, signed_path, data_string):
181+
def send_request(self, signed_path, data_string, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
182+
timeout = None if timeout == socket._GLOBAL_DEFAULT_TIMEOUT else timeout
182183
import tornado.httpclient
183184
absolute_url = self.get_absolute_path(signed_path)
184-
request = tornado.httpclient.HTTPRequest(absolute_url, method='POST', body=data_string)
185+
request = tornado.httpclient.HTTPRequest(absolute_url, method='POST', body=data_string, request_timeout=timeout)
185186
client = tornado.httpclient.AsyncHTTPClient()
186187
client.fetch(request, callback=self.callback)
187188
# Returning 202 to avoid Channel errors. Actual error handling takes place in callback.

0 commit comments

Comments
 (0)