Отправка сообщения от Кафки в socket.io в python - PullRequest
0 голосов
/ 06 июня 2018

У меня есть сквозной конвейер веб-приложения, как показано ниже в Python3.6

Socket(connection from client to server) -> Flask Server -> Kafka Producer ->Kafka Consumer ->NLPService

Теперь, когда я получаю result обратно от NLPService, мне нужно отправитьэто обратно к клиенту.Я думаю ниже шаги

  1. Служба NLP записывает result в другую тему о производителе Kafka (выполнено)
  2. Потребитель Kafka получает result от брокера Kafka (выполнено)
  3. Потребитель Kafka должен записать result на сервер фляги
  4. Затем сервер фляги отправит result обратно в сокет
  5. Запись сокета клиенту

Я уже сделал шаги 1-2.Но застрял на шаге 3, 4. Как мне записать из Кафки на флеш-сервер?Если я просто вызываю функцию в моем server.py, то логически кажется, что мне нужно создать сокет внутри функции at в server.py, который будет выполнять работу по отправке клиенту через сокет.Но синтаксис выглядит странно.Чего мне не хватает?

в consumer.py

#receiving reply
topicReply = 'Reply'
consumerReply = KafkaConsumer(topicReply, value_deserializer=lambda m: json.loads(m.decode('ascii')))
for message in consumerReply:
    #send reply back to Server
    fromConsumer(message.value)

в server.py

socketio = SocketIO(app)

def fromConsumer(msg):
    @socketio.on('reply')
    def replyMessage(msg):
        send(msg)

Приведенная выше конструкция в server.py не имеет смысламне.Пожалуйста, предложите.

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