Я создал простой сервер веб-сокетов, используя aiohttp. мой сервер читает сообщение из redis pub / sub и отправляет его клиенту. это мой код веб-сокета:
import aiohttp
from aiohttp import web
import aioredis
router = web.RouteTableDef()
@router.get("/ws")
async def websocket_handler(request):
ws = web.WebSocketResponse()
await ws.prepare(request)
sub = request.config_dict["REDIS"]
ch, *_ = await sub.subscribe('hi')
async for msg in ch.iter(encoding='utf-8'):
await ws.send_str('{}: {}'.format(ch.name, msg))
async def init_redis(app):
redis_pool = await aioredis.create_redis_pool('redis://localhost')
app["REDIS"] = redis_pool
yield
redis_pool.close()
await redis_pool.wait_closed()
async def init_app():
app = web.Application()
app.add_routes(router)
app.cleanup_ctx.append(init_redis)
return app
web.run_app(init_app())
мой первый клиент может подключиться к серверу и получать сообщения, но когда я создаю другого клиента для подключения к этой конечной точке, он не получает сообщений! в чем проблема ? как я могу решить эту проблему?