通常流行的 Django 与前端通过 Ajax 进行交互,但是网络通信技术更加发达的今天,点对点通信的交互越来越频繁,因此提供全双工通信的协议 WebSockets ,也需要融合到 Django 中来。
传统 Django 是基于 HTTP 协议,但是不支持 WebSockets。Django 在加入 Channels 之后,就可以用类似于传统 HTTP 协议的方式使用 WebSockets。
1 关于 Channels 的介绍
1.1 文字介绍
英文博客上介绍 2016年3月17日
Finally, Real-Time Django Is Here: Get Started with Django Channels
oschina 上在2016年3月24日完成的翻译
实时 Django 终于来了 —— Django Channels 入门指南
伯乐在线的转发
实时 Django 终于来了 —— Django Channels 入门指南
1.2 核心图片讲解
传统的 Django 就是介于 app 的 view 函数与浏览器的一个层。
为了支持 WebSockets,传统 Django 层变更成 Channels,而 Channels 这一部分又可以细分成两个层:channel 层(channel layer)与交互服务器(interface server)。
- channel 层:负责把 http 消息与 web socket 消息分发给对应的消费者(即 view 函数)。
- 交互服务器:与浏览器进行通信。
2 文档
2.1 Django Channels 官方文档
2.2 Channels 正式成为 Django 的官方项目
Channels adopted as an official Django project