Fastapi 使用实时消息

问题描述

我有一个虚拟助手,可以接收消息并将其发送到事件代理(例如 rabbitmq)。

事件代理允许我将我的运行助手连接到处理来自对话的数据的其他服务。

示例:

如果我有一个 RabbitMQ 服务器正在运行,以及另一个使用事件的应用程序,那么这个消费者需要使用回调操作来实现 pika 的 start_sumption() 方法。这是一个简单的例子:

import json
import pika


def _callback(self,ch,method,properties,body):
        # Do something useful with your incoming message body here,e.g.
        # saving it to a database
        print('Received event {}'.format(json.loads(body)))

if __name__ == '__main__':

    # RabbitMQ credentials with username and password
    credentials = pika.PlainCredentials('username','password')

    # pika connection to the RabbitMQ host - typically 'rabbit' in a
    # docker environment,or 'localhost' in a local environment
    connection = pika.BlockingConnection(
        pika.ConnectionParameters('rabbit',credentials=credentials))

    # start consumption of channel
    channel = connection.channel()
    channel.basic_consume(_callback,queue='events',no_ack=True)
    channel.start_consuming()

使用 fastapi 和 pika 来使用这些实时消息并将其保存到数据库的正确方法是什么?

我需要一个 websocket 路由吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...