fix asyncio calling, accept changes before mutating
This commit is contained in:
10
main.py
10
main.py
@@ -57,25 +57,25 @@ async def unregister(websocket):
|
||||
await notify_users()
|
||||
|
||||
|
||||
async def counter(websocket, path):
|
||||
async def ws_handler(websocket, path):
|
||||
# register(websocket) sends user_event() to websocket
|
||||
await register(websocket)
|
||||
try:
|
||||
await websocket.send(state_event(await state.get_data()))
|
||||
await websocket.send(state_event(state.get_data()))
|
||||
await websocket.send(options_event())
|
||||
async for message in websocket:
|
||||
data = json.loads(message)
|
||||
if data["type"] == "mutation":
|
||||
await state.mutate(data["payload"])
|
||||
asyncio.create_task(state.propagate(data["payload"]))
|
||||
else:
|
||||
logging.error("unsupported event: {}", data)
|
||||
finally:
|
||||
await unregister(websocket)
|
||||
|
||||
async def serve_ws():
|
||||
state.register_callback(notify_state)
|
||||
state.register_on_change_callback(notify_state)
|
||||
await state.inc_initialized()
|
||||
start_server = websockets.serve(counter, "localhost", 6789)
|
||||
start_server = websockets.serve(ws_handler, "0.0.0.0", 6789)
|
||||
await start_server
|
||||
|
||||
async def tick():
|
||||
|
||||
Reference in New Issue
Block a user