def dispatch(self, message=None, data=None): """ From the tunnel (server) to the proxy (client) """ if message: try: parsed = json.loads(message) except ValueError: raise conn_id, event = parsed[0:2] if conn_id not in self.connections: return if event == 'closed': conn = self.connections.pop(conn_id) conn.close() elif data: conn_id, data = decode_data_packet(data) self.connections[conn_id].recvq.put(data)
def listen(self): while True: msg = self.ws.receive(msg_obj=True) if msg is None: print "Trying to stop" self.stop() if msg.is_text: parsed = json.loads(str(msg)) print str(msg) conn_id, event = parsed[0:2] if event == 'open': self.local_open(conn_id) elif event == 'closed': self.local_close(conn_id) elif msg.is_binary: conn_id, data = decode_data_packet(msg.data) self.local_send(conn_id, data)