Django分路器信道
channels-demultiplexer的Python项目详细描述
多路复用(2)和djangor
功能
信道解复用器提供了一种标准的方法来在单个websocket上复用不同的数据流。在
它期望JSON格式的WebSocket帧具有两个键,stream和payload(都是可配置的)。它将流与映射进行匹配,以找到使用者,然后转发消息。使用者不需要任何修改就可以插入(de)多路复用器,因此您可以直接将它们挂接到routing.py文件中以及(de)多路复用器中。在
快速启动
使用pip安装:
$ pip install channels-demultiplexer
将channels_demultiplexer添加到您的INSTALLED_APPS
^{pr2}$在demultiplexer.py中创建多路复用器:
fromchannels_demultiplexer.demultiplexerimportWebsocketDemultiplexerfrom.consumersimportEchoConsumer,AnotherConsumerclassDemultiplexer(WebsocketDemultiplexer):# Wire your async JSON consumers here: {stream_name: consumer}consumer_classes={"echo":EchoConsumer,"other":AnotherConsumer,}
将解复用器添加到通道路由配置中:
fromchannels.routingimportProtocolTypeRouter,URLRouterfromdjango.conf.urlsimporturlfromdjango.core.asgiimportget_asgi_applicationfrom.demultiplexerimportDemultiplexerapplication=ProtocolTypeRouter({"http":get_asgi_application(),"websocket":URLRouter([url(r"^/$",Demultiplexer.as_asgi()),])})
兼容性
channels | channels_demultiplexer |
---|---|
v3.x | latest |
v2.x | v1.0.1 |
捐款
最好将提议的变更和pr分成小的、不同的补丁 按类型分类,以便更快地将它们合并到上游并更快地释放:
- 特点
- 修正错误
- 代码样式改进,以及
- 文件改进。在
所有贡献都需要通过配置的质量门 用CI。这包括成功运行测试和过梁 在当前官方支持的Python和Django版本上。在
测试自动化由Travis CI自动运行,但您可以 在推送提交之前,使用tox命令在本地运行它。在
- 项目
标签: