WebSocket实现方式

1.安装组件channels

pip install channels

2.注册app

daphne

INSTALLED_APPS = ['daphne',           #channels4.0以后要引入'channels',         # 即时通信'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config',
]
3.在setting中添加ASGI——APPLICATION
WSGI_APPLICATION = 'MyBlog.wsgi.application'
ASGI_APPLICATION = 'MyBlog.wsgi.application'
4.在app01中创建consumers.py文件
from channels.exceptions import StopConsumer
from channels.generic.websocket import WebsocketConsumerclass ChatConsumer(WebsocketConsumer):def websocket_connect(self, message):# 有客户端向后端发送websocket请求时自动触发# 服务端允许和客户端创建链接self.accept()def websocket_receive(self, message):# 浏览器基于websocket向后端发送数据,自动触发接受xi消息print(message)self.send("不要回复!")def websocket_disconnect(self, message):# 客户端与服务端断开连接时自动触发print("断开连接!")raise StopConsumer()
5.在setting.py同级目录中创建routing.py文件
from django.urls import re_pathfrom app01 import consumerswebsocket_urlpatterns = [re_path(r'ws/(?P<group>\w+)/$', consumers.ChatConsumer.as_asgi()),
]
6.修改asgi.py文件
import osfrom channels.routing import ProtocolTypeRouter, URLRouter
from django.core.asgi import get_asgi_applicationfrom MyBlog import routingos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MyBlog.settings')application = ProtocolTypeRouter({"http": get_asgi_application(),  # 找urls.py 找视图函数"websocket": URLRouter(routing.websocket_urlpatterns)  # 找routing(urls)  consumers(views)
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/91203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于css变量轻松实现网站的主题切换功能

我们经常看到一些网站都有主题切换&#xff0c;例如vue官方文档。那他是怎么实现的呢&#xff1f; 检查元素&#xff0c;发现点击切换时&#xff0c;html元素会动态的添加和移除一个class:dark&#xff0c;然后页面主题色就变了。仔细想想&#xff0c;这要是放在以前&#xff0…

电缆隧道在线监测系统:提升电力设施安全与效率的关键

随着城市化进程的加快&#xff0c;电力电缆隧道在保障城市电力供应方面的地位日益重要。然而&#xff0c;电缆隧道环境复杂&#xff0c;容易受到多种因素影响&#xff0c;如温度、湿度、烟雾、水位等&#xff0c;严重威胁电力设施的安全与稳定运行。在此背景下&#xff0c;电缆…

修改switch Nand无线区码 以支持高频5G 信道

环境&#xff1a;NS switch 问题&#xff1a;日版&#xff0c;港版无法连接大于44信道的5G WIFI 解决办法&#xff1a;修改PRODINFO.dec的WIFI 区域码 背景&#xff1a;我的switch是最早买的港版的一批&#xff0c;WIFI 只能连接日本的信道&#xff0c;家里的路由器是国行的&am…

国庆day1---消息队列实现进程之间通信方式代码,现象

snd&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)typedef struct{ long msgtype; //消息类型char data[1024]; //消息正文 }Msg;#define SIZE sizeof(Msg)-sizeof(long)int main…

释放潜力:人工智能对个性化学习的影响

人工智能有潜力通过使个性化学习成为一种实用且可扩展的方法来彻底改变教育。它使教育工作者能够满足每个学生的独特需求&#xff0c;促进参与并提高整体学习成果。然而&#xff0c;必须解决道德问题&#xff0c;并确保技术仍然是教育工作者手中的工具&#xff0c;为学生创造更…

What is a TCP SYN Flood DDoS Attack?

什么是TCP SYN洪水攻击&#xff1f; 传输控制协议 &#xff08;TCP&#xff09; 在发送方和接收方之间使用三向握手在它们之间建立可靠的 TCP 连接。 首先&#xff0c;想要与接收方建立连接的发送方使用同步序列号 &#xff08;SYN&#xff09; 向接收方发送数据段&#xff0c…

webpack:详解cache模块常用配置

背景 持久化缓存算得上是 Webpack 5 最令人振奋的特性之一&#xff0c;它能够将首次构建结果持久化到本地文件系统&#xff0c;在下次执行构建时跳过一系列解析、链接、编译等非常消耗性能的操作&#xff0c;直接复用 module、chunk 的构建结果。 cache 会在开发模式被设置成…

Mysql——三、SQL语句(上篇)

Mysql 一、SQL语句基础1、SQL简介2、SQL语句分类3、SQL语句的书写规范 二、数据库操作三、MySQL 字符集1、变量2、utf8和utf8mb4的区别 四、数据库对象五、SELECT语句1、简单的SELECT语句2、SQL函数2.1 聚合函数2.2 数值型函数2.3 字符串函数2.4 日期和时间函数2.5 流程控制函数…

云原生开发:从容器到微服务的全栈指南

文章目录 什么是云原生开发&#xff1f;1. 容器化2. 微服务架构 云原生开发的优势1. 可伸缩性2. 高可用性3. 灵活性4. 快速交付 云原生开发的1. 学习曲线2. 复杂性3. 运维挑战 云原生开发的最佳实践1. 自动化部署2. 监控和日志3. 安全性4. 弹性设计5. 文档和培训 未来展望结论 …

C++ 迭代器(iterator)

迭代器介绍 迭代器&#xff08;iterator&#xff09;&#xff1a;容器类型内置的“指针” - 使用迭代器可以访问某个元素&#xff0c;迭代器也能从一个元素移动到另一个元素。 - 有迭代器的类型都拥有 begin 和 end 成员- begin&#xff1a;返回指向第一个元素&#xff08;或字…

博客无限滚动加载(html、css、js)实现

介绍 这是一个简单实现了类似博客瀑布流加载功能的页面&#xff0c;使用html、css、js实现。简单易懂&#xff0c;值得学习借鉴。&#x1f44d; 演示地址&#xff1a;https://i_dog.gitee.io/easy-web-projects/infinite_scroll_blog/index.html 代码 index.html <!DOCT…

知识工程---neo4j 5.12.0+GDS2.4.6安装

&#xff08;已安装好neo4j community 5.12.0&#xff09; 一. GDS下载 jar包下载地址&#xff1a;https://neo4j.com/graph-data-science-software/ 下载得到一个zip压缩包&#xff0c;解压后得到jar包。 二. GDS安装及配置 将解压得到的jar包放入neo4j安装目录下的plugi…

全新自适应导航网模板 导航网系统源码 网址导航系统源码 网址目录网系统源码

高价值目录网导航网整站源码 | 2999元价值,最新版本源码下载推荐 1、导航网一键获取目标站SEO信息,7.5版本增加会员中心一键获取网站信息网站权重,增加小程序提交发布,全新自适应模板; 2、可设置游客提交、游客提交人工审核,会员免审提交,会员提交人工审核,VIP会员免…

【数据结构--八大排序】之冒泡排序+选择排序+插入排序

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

ROS系统读取USB相机图像数据

ROS系统读取USB相机图像数据 前言usb_cam 功能包下载与编译摄像头选择连接摄像头可配置参数 前言 usb_cam功能包简介 为了丰富机器人与外界的交互方式&#xff0c;已经增加了与机器人的语音交互方式&#xff0c;不仅使机器人能够说话发声&#xff0c;还能听懂我们说的话&#…

26947-2011 手动托盘搬运车 学习记录

声明 本文是学习GB-T 26947-2011 手动托盘搬运车. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了手动托盘搬运车(以下简称托盘车)的结构参数、技术要求、试验方法、检验规则、 标志、包装、运输和贮存。 本标准适用于额定载荷…

GPIO的输入模式

1. GPIO支持4种输入模式&#xff08;浮空输入、上拉输入、下拉输入、模拟输入&#xff09; 1. 模拟输入 首先GPIO输出部分(N-MOS,P-MOS)是不起作用的。并且TTL施密特触发器也是不工作的。 上下拉电阻的开关都是关闭的。相当于I/o直接接在模拟输入。 模拟输入模式下&#xff…

【每日一题】种花问题

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;贪心 写在最后 Tag 【贪心】【数组】【2023-09-29】 题目来源 605. 种花问题 题目解读 种花要种在空地&#xff08;没有种过花的位置&#xff09;上&#xff0c;花不能种在相邻位置上否则会抢夺水资源无法正常生长&a…

问 ChatGPT 关于GPT的事情:压缩篇

一、我现在有一个175B的GPT模型&#xff0c;但我的计算机运行不起来&#xff0c;想给它压缩成6B的小型模型&#xff0c;应该采取哪些具体步骤&#xff1f; 要将一个175B的GPT模型压缩成6B的小型模型&#xff0c;可以采取以下具体步骤&#xff1a; 1.网络架构优化&#xff1a;…

ChatGPT,AIGC 助力人力资源管理对身份证号处理

HR&#xff0c;行政&#xff0c;文员办公对于员工信息管理中有一项目非常重要的操作&#xff0c;便是从身份证号中提取相关信息如下&#xff1a; 可以用ChatGPT完成三个字段的提取与计算。 我们先让ChatGPT描述一下身份证号每一位都代表什么意思。 接下来从身份证号中提取出生…