Как создать ответы веб-сокета для отдельных соединений? - PullRequest
0 голосов
/ 09 января 2020

Я пытался использовать aiohttp-ws, мой пример:

from aiohttp import web
import aiohttp

async def websocket_handler(request):

    ws = web.WebSocketResponse()
    await ws.prepare(request)

    async for msg in ws:
        if msg.type == aiohttp.WSMsgType.TEXT:
            if msg.data == 'close':
                await ws.close()
            else:
                await ws.send_str(msg.data + '/answer')
        elif msg.type == aiohttp.WSMsgType.ERROR:
            print('ws connection closed with exception %s' %
                  ws.exception())

    print('websocket connection closed')

    return ws

async def make_app():
    app = web.Application()
    app.add_routes([web.get('/ws', websocket_handler)])
    return app

if __name__ == "__main__":
    web.run_app(make_app())

Мой результат:

enter image description here

Что вы видите в снимок экрана: я создал два соединения на одной конечной точке WS и отправил разные сообщения, но получил все ответные сообщения на первом канале. Как получить ответ на нужном канале?

...