def client_loop(callback, channel, idle=None): import socket def do_idle(): if idle: idle() else: print("TIMEOUT") tb.print_exc() time.sleep(1) def do_error(): tb.print_exc() time.sleep(1) try: connect() except: print("ERR2") tb.print_exc() while 1: try: peer2peer.subscribe(Ps, channel) while 1: msgs = peer2peer.recv(Ps) callback(msgs[2]) time.sleep(0.2) except peer2peer.WebSocketTimeoutException: do_idle() except socket.error, e: if e.errno == 35: do_idle() else: do_error() except Exception, e: do_error()
def main(): while 1: try: peer2peer.subscribe(Ps, 'dbd') while 1: msgs = peer2peer.recv(Ps) msg = msgs[2] arr = msg.split(' ', 4) if arr[1] == 'hola': peer2peer.publish(Ps, arr[0], arr[2] + " YO!") elif arr[1] == 'put': db.Put(arr[3], arr[4]) peer2peer.publish(Ps, arr[0], arr[2] + " OK") elif arr[1] == 'get': try: result = db.Get(arr[3]) peer2peer.publish(Ps, arr[0], arr[2] + ' ' + result) except KeyError: peer2peer.publish(Ps, arr[0], arr[2]) elif arr[1] == 'keys': try: result = ' '.join(list(keys(arr[3],arr[4]))) #print("RESLT", repr(result)) peer2peer.publish(Ps, arr[0], arr[2] + ' ' + result) except KeyError: peer2peer.publish(Ps, arr[0], arr[2]) elif arr[1] == 'zap': for key in keys(''): db.Delete(key) else: print("ERROR, DONT KNOW HOW TO DO THAT") pass time.sleep(0.2) except: tb.print_exc() print("ERR") time.sleep(1) try: connect() except: print("ERR2") tb.print_exc() pass pass
def db_connect(): global Db Db = peer2peer.conn() peer2peer.subscribe(Db, UUID) return Db
def xdb_connect(): global XDb XDb = peer2peer.conn('v.ccl.io:8080') peer2peer.subscribe(XDb, UUID) return XDb
def subscribe(ch): return peer2peer.subscribe(Ps, ch)
def xsubscribe(ch): return peer2peer.subscribe(Xps, ch)