Django Channels简明实践

时间:2021-02-12 22:35:48

1、安装,如果你已经安装django1.9+,那就不要用官方文档的安装指令了,把-U去掉,直接用:

  1. sudo pip install channels

2、自定义的普通Channel的名称只能包含a-z A-Z 0-9 - _ 这些字母,这样就可以和内建Channel完全区别开,内建channel是带点号.的

3、其搭建真是非常简单,安装完成后,在setiings里面加两个地方,一是在Install apps配置处添加channels app如下:

  1. INSTALLED_APPS = (
  2. 'django.contrib.auth',
  3. 'django.contrib.contenttypes',
  4. 'django.contrib.sessions',
  5. 'django.contrib.sites',
  6. ...
  7. 'channels',
  8. )

再就是添加Channel_Layer配置:

  1. # In settings.py
  2. CHANNEL_LAYERS = {
  3. "default": {
  4. "BACKEND": "asgiref.inmemory.ChannelLayer",
  5. "ROUTING": "myproject.routing.channel_routing",
  6. },
  7. }

然后配置好你自己的myproject.routing.channel_routing就ok了。

4、我目前这个项目使用channels做后端异步后台任务,很多WebSocket方面的group之类的特性基本用不到,不过Channels这个东西的逻辑实例只能支撑几千并发,所以我建议实时大数据量并发程序还是考虑Node.js或者Go,当然channels还是可以做一些需要WebSocket来实现的普通业务操作,毕竟它还是有一定优势的:和http服务的高整合度。