Django Channels教程(一)

Django Channels提供了一种处理WebSocket和后台任务的新方式,通过ASGI实现http和WebSocket的分离。无需异步代码,即可支持http轮询长连接、WebSockets的session和认证。此外,Channels还具备低延迟、可扩展性及与其他协议集成的能力,适用于实时应用如聊天、实时博客等。使用Django Channels需要Django 1.8及以上版本,并安装相关依赖。
摘要由CSDN通过智能技术生成

什么是Channels?
Channels扩展了Django的一个新的图层。它能使我们像处理其它视图一样处理WebSocket并且可以像跑Django其它服务一样跑后台任务。

它是如何工作的?
它将Django分成两个进程类型,一个是处理http和WebSocket,另一个是用来运行视图、WebSocket的处理和后台任务。
它们通过ASGI(异步服务器网关接口)草案规范进行通讯,并允许更多的协议。
Channels不会在你的代码中加入异步IO、协程或者其它的异步代码,所有的业务逻辑都会在进程或者线程中运行。

我们需要怎么做才能使用Channels?
所有的东西都是可选的。如果你确定,你将要改变WSGI服务器,做如下工作:
一个ASGI服务器
Django运行python manage.py runworker
一些ASGI请求的路由。

当你的Django使用Channels,他的http请求还是会像以前一样传到django的视图系统。

Channels还有什么能给我们的?
它还包括如下特性:
能够很轻松一次为上千个客户端的支持http轮询长连接
对于WebSockets支持session和认证
根据网站的cookies自动登录WebSockets
大量触发事件的内置原语(聊天,实时博客等)
动态刷新
每个基础的url可以选择低级的http
可扩展性到其他协议或事件源(例如WebRTC,原始UDP,SMS)

它的扩展性如何?
是的,您可以运行任意数量的协议服务器(服务于HTTP和WebSockets的协议服务器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值