Этот код сериализует возвращаемые значения HTTP и связи через веб-сокет:
while True:
some_data_from_get_request = await get_some_data(session)
msg_from_websocket = await ws.receive()
Чтобы можно было обнаружить возврат любой из двух сопрограмм, вы можете использовать asyncio.wait(..., return_when=asyncio.FIRST_COMPLETED)
:
http_fut = asyncio.ensure_future(get_some_data(session))
ws_fut = asyncio.ensure_future(ws.receive())
pending = {http_fut, ws_fut}
while pending:
_done, pending = asyncio.wait(pending, return_when=asyncio.FIRST_COMPLETED)
if http_fut.done():
some_data_from_get_request = http_fut.result()
...
if ws_fut.done():
msg_from_websocket = ws_fut.result()
...
Я столкнулся с этим замечательным гидом при соединении в расширениях SDL для плохо знакомых с SDL, который можно найти полезным.
Тем не менее, когда у меня была Ваша проблема, я в конечном счете пошел с FTGL как способ, которым SDL-ttf производит SDL-поверхность со своим шрифтом, представленным на сверхсложные вопросы в моей ситуации. Это не может иметь место в Вашей ситуации хотя