Django Channels教程(一)

什么是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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值