今天介绍下如何在django中使用channels实现websocket。其实还可以使用dwebsocket实现websocket,这里不做介绍。

首先介绍一个概念ASGI。

ASGI异步网关协议接口,一个介于网络协议服务和Python应用之间的标准接口,能够处理多种通用的协议类型,包括HTTP,HTTP2和WebSocket。

然而目前的常用的WSGI主要是针对HTTP风格的请求响应模型做的设计,并且越来越多的不遵循这种模式的协议逐渐成为Web变成的标准之一,例如WebSocket。

ASGI尝试保持在一个简单的应用接口的前提下,提供允许数据能够在任意的时候、被任意应用进程发送和接受的抽象。并且同样描述了一个新的,兼容HTTP请求响应以及WebSocket数据帧的序列格式。允许这些协议能通过网络或本地socket进行传输,以及让不同的协议被分配到不同的进程中。

下面开始介绍下channels

channels是对django的扩展,使其可以支持WebSockets, chat protocols, IoT protocols,或者更多。channels基于ASGI。

下面开始介绍channels实现websocket的配置:

1.环境

python3.6 channels2.1.7 channels-redis2.3.3 django2.0.5 drf3.9.2

2.配置

其中test01是app名称 DjangoChannel2是项目名称

test01.routing.py:

test01.consumer.py:

DjangoChannel2.routing.py:

DjangoChannel2.asgi.py:

DjangoChannel2.settings.py:

以上就是配置的过程。

3.前端index.html

其中websocket请求url中

ws://127.0.0.1:8000/ws/status/1/

数字1可以表示不同客户端,也可以是2、3等数字。

经过上面的配置后,django中就可以实现websocket功能了。

今天就介绍到这里。有问题环境私信交流。

谷歌本地不支持websocket_django开发-websocket的实现相关推荐

  1. 利用Adobe AIR本地扩展支持Android开发

    http://bbs.9ria.com/thread-180609-1-1.html 学前准备... 2 所需知识... 2 额外工具... 2 用户等级... 2 例子文件... 2 设置AIR S ...

  2. PySide是Python语言的Qt框架的一个绑定。PySide支持跨平台和本地GUI应用程序开发,是在Python 2.6、2.7和3.x版本下可用。

    PySide是Python语言的Qt框架的一个绑定.PySide支持跨平台和本地GUI应用程序开发,是在Python 2.6.2.7和3.x版本下可用. 在开始使用PySide之前,需要在你的机器上安 ...

  3. 谷歌高效开发的秘密:来自谷歌前员工的软件开发工具指南

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 关注订阅号「程序员小乐」,收看更多精彩内容 每日英文 Smile, Beca ...

  4. 重磅资讯:《数据安全法》颁布,国家支持数据开发利用和数据安全技术研究

    <数据安全法>颁布,国家支持数据开发利用和数据安全技术研究,"数据"已成为和土地.资本.劳动力并列的"生产要素",具有重大价值.一旦数据被破坏或者被 ...

  5. 看苹果Metal支持c++开发

    今年五月份开始,苹果的Metal图形接口悄悄开始支持C++开发. 笔者对此表示高度赞誉,类似于macBook pro回归支持了HDMI,非常务实的做法. 当然metal 支持c++开发的影响非常深远. ...

  6. BIGEMAP(百度、高德、谷歌)离线地图二次开发

    (百度.高德.谷歌)离线地图二次开发 发布时间:2019-04-10 版权:               1.如何搭建离线地图开发环境               2.下载离线地图数据(金字塔瓦片数据 ...

  7. (百度、高德、谷歌)离线地图二次开发

    (百度.高德.谷歌)离线地图二次开发 发布时间:2019-04-10 版权: 相关链接:三维(3D)离线地图 二次开发                               1.如何搭建离线地图 ...

  8. 本地生活服务APP开发

    每个地方都有自己的生活服务类平台,其中占比最多的就是网站平台,类似小程序或者app的还是少数,正是因为稀缺的原因,所以这方面的需求才根据的多,我们常用的58,赶集等平台,那开发一款本地生活服务app的 ...

  9. 谷歌前员工:一流开发工具经验在手却不能用?

    [CSDN编者按]提到开发工具,谷歌算得上是世界领先的,但是由于几乎所有的工具都和谷歌内部的生态系统紧密相连,这意味着离开了谷歌,这些工具或都将受限.为了打破这一瓶颈,一位曾在谷歌工作过的工程师Bey ...

最新文章

  1. 陶哲轩实分析 定理 13.3.5 :紧致度量空间上的连续函数一致连续
  2. 5G URLLC 是 ToB 的关键
  3. openstack登陆dashboard提示认证发生错误
  4. 支付产品必懂的会计基础及如何应用
  5. linux中常用的压缩、解压命令详解
  6. Hive:表1inner join表2结果group by优化
  7. Python学习第十六篇——异常处理
  8. ASP.NET MVC中同步与异步
  9. python异常值处理实例_利用Python进行异常值分析实例代码
  10. Prototype模式
  11. 你在微信漂流瓶里遇到过哪些有意思的人和事?
  12. 计算机中的管理应用,计算机在企业管理中应用_29067.doc
  13. Java解析函数_Java Predicate及Consumer接口函数代码实现解析
  14. webconfig.xml文件golbalization节的作用
  15. 0可用,0已用 U盘问题 重解~
  16. 关于日记app的思考
  17. 【计算机史】早期人类的重要计算工具科普
  18. 亚马逊服务器 购买 流程_亚马逊环如何使我们对购买的每种产品都抱有偏执
  19. 根据日期获取农历节日
  20. java 字符串不等于_java如何对字符串进行不等于判断

热门文章

  1. exchanger_如何通过示例在Java中使用Exchanger
  2. 迈克尔 杰克逊mv_杰克逊JSON解析错误– UnrecognizedPropertyException:无法识别的字段,未标记为可忽略[已解决]...
  3. spring多个视图解析器_在Spring中配置多个View解析器
  4. th:each嵌套_难题:嵌套的computeIfAbsent
  5. spring aop 注释_使用Spring AOP,自定义注释和反射为您的应用程序审核基础结构
  6. Java:Speedment 3.2的发布–现在启用轻量级数据库微服务
  7. Java机器学习,第1部分
  8. entitymanager_实体管理器的类型:应用程序管理的EntityManager
  9. 使用Spring Boot自动发布和监视API
  10. java permgen_Java 8:从PermGen到元空间