webug/websocket.py
2020-02-21 15:45:30 +01:00

49 lines
1.2 KiB
Python

import json
from flask import request
from flask_socketio import emit
from objects.display import Display, Window, Tab
from objects import glob
from helpers import uuid, connection
@glob.websocket.on_error_default # handles all namespaces without an explicit error handler
def default_error_handler(e):
print("ERR:", e)
return 500
@glob.websocket.on("connect")
def ws_connect():
connection.connect(request.sid)
return "hi"
@glob.websocket.on("disconnect")
def ws_disconnect():
connection.disconnect(request.sid)
@glob.websocket.on("display")
def ws_display(data):
def handle_list(_):
return [ item.serialize() for item in glob.displays.values() ]
def handle_new(_):
display = Display.generate()
return display.serialize()
def handle_connect(data):
uuid = data["uuid"]
if uuid not in glob.displays.keys():
raise Exception("Display not found")
glob.displays[uuid].attach(request.sid)
#print(dir(request))
#print(request.sid)
#print("TODO")
switch = {
"list": handle_list,
"new": handle_new,
"connect": handle_connect
}
return switch.get(data["action"])(data)