首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用django-channels 2处理消息?

如何使用django-channels 2处理消息?
EN

Stack Overflow用户
提问于 2020-02-20 16:39:29
回答 1查看 140关注 0票数 1

在我的Django项目中,我创建了一个通知应用程序,它可以检测何时保存了特定的模型,并将通知推送到所有客户端(基于https://arunrocks.com/understanding-django-channels/https://github.com/arocks/channels-example )。我已经将我的代码更新到了Channels 2,现在我遇到了一个javascript包装器的问题,这个包装器已经在django-channel 2(How to locate websocketbridge.js in Django using channels websocket?)中被移除了。

在我有一个处理消息的脚本之前:

代码语言:javascript
运行
复制
<script>
  document.addEventListener('DOMContentLoaded', function() {
    const webSocketBridge = new channels.WebSocketBridge();
    const nl = document.querySelector("#notifylist");

    webSocketBridge.connect('/notifications/');
    webSocketBridge.listen(function(action, stream) {
      console.log("RESPONSE:", action);
      if(action.event == "New User") {
        var el = document.createElement("li");
        el.innerHTML = action.text;
        nl.appendChild(el);
      }
    })
  })
</script>

这个脚本不再工作了。他们建议用ReconnectingWebSocket.js替换WebSocketBridge.js,但我不知道如何修改我以前的脚本才能使用ReconnectingWebSocket.js。

有人使用ReconnectingWebSocket更新过他/她的代码吗?如果是这样,你能提供一个例子吗?

非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-02-21 03:08:14

channels v2不再直接支持旧包装器的许多功能

streamaction的概念。

你可以自己做这件事(在你的消费者和js代码中)。

或者有一个lib (免责声明,我是作者) https://github.com/hishnash/djangochannelsrestframework,当与https://github.com/hishnash/channelsmultiplexer结合使用时,它提供了来自channelsV1的action + stream概念

你也可以同时使用js lib https://github.com/theY4Kman/dcrf-client

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60315835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档