Пример #1
0
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()
Пример #2
0
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
Пример #3
0
    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()