Почему мой сервер веб-сокетов принимает только 1 соединение - PullRequest
1 голос
/ 14 июня 2019

Я создаю сервер websocket (python3.7, websockets ), который принимает сообщения Kafka (python-kafka) и затем отправляет сообщения клиенту websocket. Мой код ниже. Он принимает только первое соединение. Почему?

import asyncio
from kafka import KafkaConsumer
import websockets
kafka_consumer = KafkaConsumer(
    'notifications',
    bootstrap_servers=[server],
    auto_offset_reset='earliest',
    enable_auto_commit=True,
    group_id='group2',
    value_deserializer=lambda x: loads(x.decode('utf-8')))

@asyncio.coroutine
async def notification(websocket, path):
    # register(websocket) sends user_event() to websocket
    for msg in kafka_consumer:
        await websocket.send(json.dumps(msg.value))

asyncio.get_event_loop().run_until_complete(
    websockets.serve(notification, '0.0.0.0', 8081))
asyncio.get_event_loop().run_forever()
...