Merge pull request #52 from juanmb/master

Apply default timeout to WebSocketApp
This commit is contained in:
liris
2013-10-14 15:41:08 -07:00

View File

@@ -820,8 +820,11 @@ class WebSocketApp(object):
self.sock.close() self.sock.close()
def _send_ping(self, interval): def _send_ping(self, interval):
while self.keep_running: while True:
time.sleep(interval) for i in range(interval):
time.sleep(1)
if not self.keep_running:
return
self.sock.ping() self.sock.ping()
def run_forever(self, sockopt=None, sslopt=None, ping_interval=0): def run_forever(self, sockopt=None, sslopt=None, ping_interval=0):
@@ -844,6 +847,7 @@ class WebSocketApp(object):
try: try:
self.sock = WebSocket(self.get_mask_key, sockopt=sockopt, sslopt=sslopt) self.sock = WebSocket(self.get_mask_key, sockopt=sockopt, sslopt=sslopt)
self.sock.settimeout(default_timeout)
self.sock.connect(self.url, header=self.header) self.sock.connect(self.url, header=self.header)
self._callback(self.on_open) self._callback(self.on_open)
@@ -861,6 +865,7 @@ class WebSocketApp(object):
self._callback(self.on_error, e) self._callback(self.on_error, e)
finally: finally:
if thread: if thread:
self.keep_running = False
thread.join() thread.join()
self.sock.close() self.sock.close()
self._callback(self.on_close) self._callback(self.on_close)