Доступ к контексту сервера из websockets ws_handler - PullRequest
0 голосов
/ 30 мая 2019

Я пишу простое серверное приложение websocket на python с использованием библиотеки websockets.

В моей функции ws_handler я хотел бы получить доступ к некоторым данным сервера.

Вот воображаемый фрагмент кода, который выражает то, что я ищу:

async def ws_handler(websocket, path, context):
    await websocket.send("Count={}".format(context.current_count))

some_data = Data()

start_server = websockets.serve(ws_handler, 'localhost', 8765, context=some_data)

Я думаю, у веб-сокетов должен быть способ сделать что-то подобное, но я не могу понять это.

1 Ответ

0 голосов
/ 03 июня 2019

Это объясняется в документации шпаргалки websockets: «Передача дополнительных аргументов обработчику соединения».

В этом случае это будет:

import asyncio
import functools
import websockets

async def ws_handler(websocket, path, context):
    await websocket.send("Count={}".format(context.current_count))

some_data = Data()

bound_handler = functools.partial(ws_handler, context=some_data)
start_server = websockets.serve(bound_handler, 'localhost', 8765)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...