from wvv.util import get_logger # import socketio import eventlet # eventlet.monkey_patch() # from gevent import monkey,pywsgi # from geventwebsocket.handler import WebSocketHandler from flask_socketio import SocketIO, emit # monkey.patch_all() from flask import Flask log = get_logger("ui-server") # sio = socketio.Server() app = Flask(__name__) sio = SocketIO(app) @sio.on("connect", namespace="/test") def connect(): print("connect") @sio.on("diy", namespace="/test") def loop(data): print("diy", data) emit("relpy") sio.run(app)
import json from wvv.util import get_logger log = get_logger('ui-service-UI') class UI: def __init__(self,id,sendFn): self.id = id self.send = sendFn def message(self,data): try: log.info(data) _type = data[type] fn = getattr(self,_type.lower()) if fn: fn(data) except Exception as e: log.error(e)
from socket import * import json from threading import Thread from wvv.util import get_logger from wvv.core.service.frontend.ui import UI log = get_logger('ui-service-server') class UIEventLoop: clients={} messages=[] def __init__(self,cls): self.cls = cls Thread(target=self.loop).start() def register(self,id,sendFn): self.clients[id]=self.cls(id,sendFn) def message(self,id,data): self.messages.append((id,data)) def leave(self,id): self[id] = None def loop(self): while True: if len(self.messages) > 0: log.debug(self.messages) id,data = self.messages.pop(0)