class SocketTaskLog(TaskLog): def __init__(self, uuid, url): self.uuid = uuid self.url = url # self.io = SocketIO(message_queue='redis://') self.io = Client() print(">>> Connecting to {}".format(url)) self.io.connect(url) self.io.emit('task_start', { 'uuid': self.uuid, }) def emit(self, message, data): self.io.emit('task_update', { 'uuid': self.uuid, 'type': message, 'data': data, }) def done(self): time.sleep(1.5) # pause to make sure buffers are flushed self.io.disconnect()
class PycilClient: def __init__(self, ip, port): self.ip = ip self.port = port self.socket = Client() @self.socket.on("new_msg") def on_new_msg(msg): remote.ee.emit("new_msg", msg) @remote.ee.on("send_msg") def send_msg(msg): self.socket.emit("send_msg", msg) @remote.ee.on("login") def login(room, name): def cb(data): remote.ee.emit("fetch_data", data) self.socket.emit("login", name, callback=cb) @remote.ee.on("logout") def logout(): self.socket.emit("logout", remote.user["name"]) self.socket.disconnect() @self.socket.on("new_user") def on_new_user(name): remote.ee.emit("new_user", name) @self.socket.on("remove_user") def on_remove_user(name): remote.ee.emit("remove_user", name) def connect(self): self.socket.connect("http://" + self.ip + ":" + str(self.port)) return True
def on_disconnect(self): print('on_disconnect') def get_current_price(self): tickers = pyupbit.get_tickers(fiat="KRW") while True: markets = pyupbit.get_current_price(tickers) client.emit( "send_price", dict(tickers=tickers, markets=markets, size=len(markets))) time.sleep(1) client = UpbitClientNamespace('/upbit') sio = Client() sio.register_namespace(client) sio.connect('http://localhost:3000', namespaces=['/upbit']) sio.start_background_task(client.get_current_price) print(sio.connected) print(sio.connection_namespaces) try: sio.wait() except KeyboardInterrupt as e: if sio.connected: sio.disconnect()