谷歌本地不支持websocket_django开发-websocket的实现

今天介绍下如何在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:

c793501ea333707bede449ea23760295.png

test01.consumer.py:

60e1400c8e51827b42f8cede14b7e9a9.png

DjangoChannel2.routing.py:

787d4a439d848411d33d7d75f16eb821.png

DjangoChannel2.asgi.py:

e03e779afaf05478ba6f7e2fe4814bf7.png

DjangoChannel2.settings.py:

f7848f183cc4dc254e89acc445b25d3f.png

以上就是配置的过程。

3.前端index.html

8b2252e5ac1ba04d3e9544a287067260.png

其中websocket请求url中

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值