django rest框架和通道2的简单资源绑定和消费者混合
drf-channels的Python项目详细描述
DRF频道
drf通道提供了一个简单的django通道绑定和使用者 可用于自动侦听和发送到组的MIXIN 每次创建/更新/删除资源时。
它需要python>;=3.5、channels>;=2.0、django>;=1.11和django rest framework 3.x
这就像通道1.x的端口Data_Binding 和Channels API 几乎没有区别。
发送到客户端的数据基于序列化程序类 提供。
它是如何工作的?
api公开了一个ResourceBinding类,该类保存模型、序列化程序类和使用者类。 consumer类必须是channels和 有一个^ {TT3}$MIXIN。
ResourceBinding类绑定pre_save、pre_delete、post_save和post_delete信号。 对你的模特来说。然后,这些信号将发送到侦听流的相应消费者组。
首先要做的是连接到消费者并传递要订阅的操作 通过url参数。
例如,您想要订阅create和update操作Jobresource(model), 频道路径是/jobs/,您将连接到下面的websocket, 如果您正在使用Channels Websocket Wrapper:
constwebSocketBridge=newchannels.WebSocketBridge()webSocketBridge.connect('/jobs/?subscribe=create,update')
然后需要在WebSocketBridge上添加一个侦听器来接收消费者发送的消息 通过信号。
webSocketBridge.socket.addEventListener('message',function(event){})