在 Angular6 前端使用 Django 通道
Posted
技术标签:
【中文标题】在 Angular6 前端使用 Django 通道【英文标题】:Using Django Channels With Angular6 Frontend 【发布时间】:2019-02-19 13:49:18 【问题描述】:我正在开发一个基于 django 的项目,我们现在打算添加一些实时功能以将数据发送到连接的客户端并在需要时刷新 UI。用于构建前端的框架是 Angular6,我们对 Angular 有点陌生。
我知道如何使用通道来发送和接收数据。但是,即使经过大量搜索,我仍然找不到任何关于如何设置和使 Angular 应用程序使用 django 通道抛出的数据的好材料。
简而言之,如何使 djangochannels 和 Angular 应用程序一起工作。?
我已经找到了什么:
http://devarea.com/angular-and-django-websockets-communication/#.XGwHiaIzbIU
上面的链接解释了如何做我想做的事,但不清楚哪些代码在哪里以及需要什么导入等。
如果有人能够解释/纠正它,或者可能会提出更好或更简单的方法,那就太好了。
提前致谢
【问题讨论】:
【参考方案1】:以上链接是 devarea.com 上的系列文章中的一篇。
从这篇文章开始: http://devarea.com/building-a-simple-website-with-angular-4-and-django-and-deploy-it-to-heroku/#.XG1jvi2B0iU
它涵盖了所需的所有步骤
【讨论】:
嗨 Liran 感谢您的链接,它确实有帮助,在浏览了几次文章后,我慢慢开始明白了。【参考方案2】:Django 通道以相当通用的方式实现了 websocket 协议的服务器端。因此,您不需要对通道进行任何特殊的 Angular 设置。虽然有一个channels js 可以更轻松地与 websocket 通信,但协议仍然非常相同,您可以使用 vanilla js websocket 客户端。自频道 2.0 起,js 库本身已被弃用
所以你真正应该寻找的是如何在 javascript 中实现 websocket 客户端,如果你还不知道的话
【讨论】:
嗨,Ken,我有点傻,套接字毕竟是基于套接字的通信,重要的是根据所使用的数据格式在端点进行序列化和反序列化。谢谢你的提醒。我可以将两个帖子都标记为答案吗? :) 允许这样做吗? @Subbu 很遗憾你不能。但是您可以对这两个答案都投赞成票,并将您认为对您的问题提供了最有价值信息的答案标记为答案以上是关于在 Angular6 前端使用 Django 通道的主要内容,如果未能解决你的问题,请参考以下文章
nginx - django 2 -angular 6 / 角度路由在重新加载页面后得到 404