У меня есть сквозной конвейер веб-приложения, как показано ниже в Python3.6
Socket(connection from client to server) -> Flask Server -> Kafka Producer ->Kafka Consumer ->NLPService
Теперь, когда я получаю result
обратно от NLPService
, мне нужно отправитьэто обратно к клиенту.Я думаю ниже шаги
- Служба NLP записывает
result
в другую тему о производителе Kafka (выполнено) - Потребитель Kafka получает
result
от брокера Kafka (выполнено) - Потребитель Kafka должен записать
result
на сервер фляги - Затем сервер фляги отправит
result
обратно в сокет - Запись сокета клиенту
Я уже сделал шаги 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
не имеет смысламне.Пожалуйста, предложите.