django之websocket(基于redis服务器与Channels实现)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了django之websocket(基于redis服务器与Channels实现),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1834字,纯文字阅读大概需要3分钟。
内容图文
一、Channels介绍
Channels改变Django在下面和通过Django的同步核心编织异步代码,允许Django项目不仅处理HTTP,还需要处理需要长时间连接的协议 - WebSockets,MQTT,chatbots,amateur radio等等。
它在保留Django同步和易用性的同时实现了这一点,允许您选择编写代码的方式 - 以Django视图,完全异步或两者混合的方式同步。除此之外,它还提供了与Django的auth系统,会话系统等的集成,可以比以往更轻松地将仅HTTP项目扩展到其他协议。
它还将此事件驱动架构与通道层捆绑在一起,该系统允许在流程之间轻松通信,并将项目分成不同的流程。
Channels提供了编写基本消费者的工具- 可以处理聊天消息或通知的各个部分 - 并将它们与URL路由,协议检测和其他便利的东西联系在一起,以制作完整的应用程序。
传统的Django视图仍然存在于Channels并且仍然可用,它们被封装在一个名为的ASGI应用程序中(ASGI是构建Channels的异步服务器规范的名称。与WSGI一样,它旨在不??同的服务器和框架之间进行选择,而不是被锁定在Channels和服务器Daphne中。)
二、Channels的使用
1.集成Channels库
1)为Channels创建根路由配置(在项目文件中创建routing.py)
from channels.routing import ProtocolTypeRouter application = ProtocolTypeRouter({ # (http->django views is added by default) })
2)将Channels注册到settings.py INSTALLED_APPS中
3)在根路由配置中指向Channels,settings.py中添加
ASGI_APPLICATION = 'object.routing.application'
Channels服务器的运行
python manage.py runserver
#如果运行成功,显示
#Starting ASGI/Channels development server at http://127.0.0.1:8000/
2.消费者的编写
当Django接受HTTP请求时,它会查询根URLconf以查找视图函数,然后调用视图函数来处理请求。类似地,当Channels接受WebSocket连接时,它会查询根路由配置以查找使用者,然后调用使用者的各种函数来处理来自连接的事件。
1)app中创建文件routing.py,编写路由处理websocket请求
from django.conf.urls import url from . import consumers websocket_urlpatterns = [ url(r'^ws/chat/(?P<room_name>[^/]+)/$', consumers.ChatConsumer), ]
2)app中创建文件consumers.py,编写处理websocket脚本
内容总结
以上是互联网集市为您收集整理的django之websocket(基于redis服务器与Channels实现)全部内容,希望文章能够帮你解决django之websocket(基于redis服务器与Channels实现)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。