Я пытаюсь передать синхронизированные сообщения с моего сервера веб-сокетов на мой клиент.Поэтому определенное сообщение через 2 секунды, другое через 4, другое через 13 секунд и т. Д.
Я использую python для сервера.Для планирования этих событий я использую планировщик событий.Это все работает нормально, если я просто печатаю, но не удается, когда я меняю функцию печати на websocket.send.
s = sched.scheduler(time.time, time.sleep)
events = []
async def hello(websocket, path):
name = await websocket.recv()
print(f"< {name}")
greeting = f"Hello {name}!"
#await websocket.send(greeting)
await websocket.send('connected')
print(f"> connected")
start_message = await websocket.recv()
if start_message == "ready":
await websocket.send('triggered')
create_schedule(websocket)
def print_message(msg, ):
print(msg)
websocket.send(msg) #fails here
def create_schedule(ws):
for x in events:
s.enter(x[0], 1, print_message, argument=(x[1],))
s.run()
start_server = websockets.serve(hello, 'localhost', 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Что также заметно, что клиент ничего не получает, если его нет 'ждите перед websocket.send в основной функции websocket.Я пытался передать веб-сокет через create_schedule, а затем в функцию печати, но безрезультатно.
Я думаю, что главная цель - это возможность отправлять синхронизированные события веб-сокета, поэтому, если это может быть достигнуто, Отлично.Это путь, который я выбрал в настоящее время, и есть определенная фундаментальная проблема, которую я не понимаю.