from bottle import route, get, static_file, run from bottle.ext.websocket import GeventWebSocketServer from bottle.ext.websocket import websocket from os.path import join as pathjoin import threading class FeTapWeb(): def __init__(self, config, statemachine_controller): self.config = config self.controller = statemachine_controller self.config = {"host": "0.0.0.0", "port": 8080} self.websockets = [] route("/")(self.root) get("/ws", apply=[websocket])(self.ws_connect) route('/')(self.statics) pass def root(self): return "

Hello world!

" def publish_status(self): for ws in self.websockets: ws.send("this is a message triggered from the server") return "ok" def ws_connect(self, ws): self.websockets.append(ws) while True: data = ws.receive() if data != None: print(data) else: break self.websockets.remove(ws) def statics(self, path): return static_file(path, root="./webinterface") def start(self): self.__running = True w = threading.Thread(target=self.__webthread) w.start() def __webthread(self): run(host=self.config["host"], port=self.config["port"], server=GeventWebSocketServer)