Django默认不支持websockey,需要Django支持的话需要安装第三方组件
django channels 是django支持websocket的一个模块。
 
1.安装
pip3 install channels # 安装
 
 
2.settings.py配置
 
#INSTALLED_APPS 中注册channels
INSTALLED_APPS = (
'channels',
)
 
 
#添加ASGI支持websocket ,指向项目下asgi文件的application
ASGI_APPLICATION = "demo.asgi.application"
 
3.修改asgi文件
 
import os

from django.core.asgi import get_asgi_application

from channels.routing import ProtocolTypeRouter, URLRouter
from WebSocketPretty import routing os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DemoName.settings') # 添加项目配置 # application = get_asgi_application() 只支持http,注释掉该行 # 既支持http又支持websocket
application = ProtocolTypeRouter(
{'http': get_asgi_application(), # 自动找urls.py 视图函数 - > http请求
'websocket': URLRouter(routing.websocket_urlpatterns) # routing 相当于urls.py 路由
}
)
 
 
4.在app下创建routing.py (ws主路由)
Channels路由配置类似于Django URLconf,当通道服务器接收到HTTP请求时,它告诉通道运行什么代码。
在app目录下,创建一个文件 routing.py文件
from django.urls import path

from WebSocketPretty import consumers #consumers相当于ws视图

websocket_urlpatterns = [
# 请求地址匹配ws/ ,走websocket视图处理
path('ws/',consumers.ChatConsumer.as_asgi())
]
 
5.在app下创建consumers.py 文件
from channels.generic.websocket import WebsocketConsumer
from channels.exceptions import StopConsumer class ChatConsumer(WebsocketConsumer): def websocket_connect(self, message):
# 有客户端向后端发送websocket连接的请求时,自动触发 self.accept() # 服务端允许和客户端创建连接 def receive(self, text_data=None, bytes_data=None):
# text_data 是前端向后端发送数据,自动触发接收消息
print(text_data)
# send 是后端向前端发送数据
self.send('ok') def websocket_disconnect(self, message):
# 客户端与服务端断开连接时,自动触发
raise StopConsumer
 
 
 
 

6.channels 配置websocket的更多相关文章

  1. Django使用channels实现Websocket连接

    简述: 需求:消息实时推送消息以及通知功能,采用django-channels来实现websocket进行实时通讯.并使用docker.daphne启动通道,保持websocket后台运行 介绍Dja ...

  2. nginx配置websocket

    有时候我们需要给websocket服务端做一下nginx的配置,比如需要给websocket服务端做负载均衡,或者,有些系统要求访问websocket的时候不能带端口,这时候我们就需要用nginx来进 ...

  3. 从配置websocket理解nginx

    原文地址:http://www.niu12.com/article/2 今天由于写了一个简单的基于h5 websoceket的聊天室,再本地都是好好了.     但是上到服务器后就发现无法行的通, 查 ...

  4. Nginx 配置Websocket

    Nginx反向代理配置websocket nginx.org 官网推荐如下的配置,也可以直接看官网:http://nginx.org/en/docs/http/websocket.html http ...

  5. 【Nginx】面试官问我Nginx能不能配置WebSocket?我给他现场演示了一番!!

    写在前面 当今互联网领域,不管是APP还是H5,不管是微信端还是小程序,只要是一款像样点的产品,为了增加用户的交互感和用户粘度,多多少少都会涉及到聊天功能.而对于Web端与H5来说,实现聊天最简单的就 ...

  6. 在vue中如何使用WebSocket 以及nginx代理如何配置WebSocket

    WebSocket WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信.浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输. 浏览器支持情况 现 ...

  7. Apache 配置 WebSocket 协议

    本文使用 http proxy 方式 实现 apache 支持  WebSocket 请求(JK 使用的 ajp 协议不能支持websocket) 通过 apache 访问 后端 tomcat上的 w ...

  8. 【运维】在Windows上使用IIS方向代理配置Websocket

    最近在做小程序的项目,微信要求所有数据请求通道都要走https或wss.而我们的项目建设如下: api基于C#的MVC webapi开发. websocket基于Nodejs的thinkjs框架开发. ...

  9. Django配置websocket请求接口

    1.settings.py INSTALLED_APPS = [ '...', 'channels', '...', ] ASGI_APPLICATION = 'server.routing.appl ...

随机推荐

  1. 数据平台调度升级改造 | 从Azkaban 平滑过度到 Apache DolphinScheduler 的操作实践

    Fordeal的数据平台调度系统之前是基于Azkaban进行二次开发的,但是在用户层面.技术层面都存在一些痛点问题难以被解决.比如在用户层面缺少任务可视化编辑界面.补数等必要功能,导致用户上手难体验差 ...

  2. C++ 文件hash值 BT种子的hash值

    这个两个东东,是我在网上找到的.小小的修改了一下方便大家使用. 一个是 获取文件哈希值的,另外一个是获取torrent文件磁力链接的哈希值. 整理好的类下载地址: 文件hash值: http://pa ...

  3. Spring 源码学习笔记10——Spring AOP

    Spring 源码学习笔记10--Spring AOP 参考书籍<Spring技术内幕>Spring AOP的实现章节 书有点老,但是里面一些概念还是总结比较到位 源码基于Spring-a ...

  4. [CF1526D] Kill Anton(逆序对,搜索)

    题面 A N T O N \rm ANTON ANTON 的基因由 A , N , T , O \rm A,N,T,O A,N,T,O 四种碱基排列组成. A N T O N \rm ANTON AN ...

  5. pytest精髓__fixture

    命令:fixture(scope='function',params=None,autouse=False,ids=None,name=None) 参数说明 scope:有四个级别参数函数" ...

  6. Swagger以及knife4j的基本使用

    Swagger以及knife4j基本使用 目录 Swagger以及knife4j基本使用 Swagger 介绍: Restful 面向资源 SpringBoot使用swagger Knife4j -- ...

  7. KingbaseES 归档日志清理

    WAL是Write Ahead Log的简写,和Oracle的redo日志类似,在R3版本存放在data/sys_log中,R6版本以后在data/sys_wal目录,在数据库访问过程中,任何对数据块 ...

  8. [CG] 顶点动画贴图 (Vertex Animation Texture, VAT)

    什么是顶点动画? 简单来说,通过改变网格顶点的位置,使网格变形从而做成的动画.顶点动画的灵活度要远远高于骨骼动画.骨骼动画是靠骨骼(一堆有层级结构的节点,数量应该是远远小于网格顶点的数量的)的变化来驱 ...

  9. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(下)

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  10. kali2020.1修改root密码,以最高权限登录系统

    普通用户权限登录系统 sodu su切换为root权限 passwd root 按提示输入密码 再次输入密码 更新密码 右上角点切换用户 root/xxxx 更改成功,下面公布操图片