通过Redis PUB/SUB实时发送消息。

shoutout-p的Python项目详细描述


呼喊

通过Redis PUB/SUB实时发送消息

Shout out设计为与FastAPI websocket一起工作,而在{a2}后面运行时使用多个Uvicorn workers。其中需要一个集中式缓存层(Redis)来跨工作进程维护状态(消息)。在

您也可以将Shoutout用作独立的异步应用程序。在

使用

独立

importasynciofromshoutout.broadcastimportBroadcastbroadcast=Broadcast("redis://localhost:6379")asyncdefmain():awaitbroadcast.connect()asyncwithbroadcast.subscribe("hello")assubscriber:ifsubscriber:awaitbroadcast.publish("hello",message={"channel":"hello","message":"Hello World!"})asyncfor_,msginsubscriber:print(msg)breakif__name__=="__main__":asyncio.run(main())

上面的示例已经完成,应该按原样运行。

快速API

^{pr2}$

上面的示例已经完成,应该按原样运行。

运行它:

uvicorn main:app --reload

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
算法根据Java中传递的参数定义数据类型   java将图像文件存储在Google云存储桶中后,显示大小为“0字节”的所有文件列表   swing Java表模型删除Bounds 1的行排列   java中表上的for循环基本迭代   带有Http请求和UTF8的java下载文件   java滞后于setImageDrawable   java如何使用println按单位打印同一列中的数字列表?   中文Windows版本的Java默认编码   java编程项目,ADT列表   无法识别java消息部分MyClass。(它是否存在于服务WSDL中?)   java从IJavaProject或IProject获取到org。阿帕奇。专家模型模型   如何使用枚举(如java类变量)实现运行时同态?   使用集合对特定于Java的练习进行排序。分类   调试如何调试已作为exe文件运行的java应用程序?   java如何将带有模块的项目导入到另一个项目中,而不丢失封装?