django实现聊天室、消息推送
Django-channel可以做什么 在Django中,默认使用的是HTTP通信,不过这种通信方式有个很大的缺陷,就是不能很好的支持实时通信。如果硬是要使用HTTP做实时通信的话只能在客户端进行轮询了,不过这样做的开销太大了。 因此,在1.9版本之后,Django实现了对Channels的支持,他所使用的是WebSocket通信,解决了实时通信的问题,而且在使用WebSocket进行通信的同时依旧能够支持HTTP通信。 实现结果 本项目实现了聊天室、消息推送。 项目配置 搭建Django项目 不在讲述搭建项目步骤,以下是项目结构。 Setting配置 INSTALLED_APPS中添加channels; 指定ASGI的路由地址,添加ASGI_APPLICATION = 'tbkt.routing.application' 设置消息通道,添加CHANNEL_LAYERS配置 CHANNEL_LAYERS = { 'default': { 'BACKEND': 'channels_redis.core.RedisChannelLayer', 'CONFIG': { "hosts": ["redis://:password@address:port/db"], }, }, } Routing——websocket路由配置(类似于Django中的urls系统)