django channels实战(websocket底层原理和案例)

1、websocket相关

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.1、轮询

在这里插入图片描述

1.2、长轮询

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.3、websocket

在这里插入图片描述

1.3.1、websocket原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.2、django框架

在这里插入图片描述
在这里插入图片描述

asgi.py在django项目同名app目录下
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.3.3、聊天室

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

django代码总结
在这里插入图片描述

小结

在这里插入图片描述

1.3.4、群聊(一)

前端代码

在这里插入图片描述
在这里插入图片描述

后端代码

在这里插入图片描述

1.3.5、群聊(二) 推荐使用(较成熟版本)

以下两种方式CHANNEL_LAYERS = {}可以二选一配置
在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

参考资料

1、视频及课件

【django channels实战(websocket底层原理和案例)-哔哩哔哩】 https://b23.tv/XdJpE8b

https://download.csdn.net/download/qq_42740465/88130989

2、其他资料

https://blog.csdn.net/weixin_46371752/article/details/131921951

https://www.cnblogs.com/wupeiqi/articles/9593858.html

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

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

相关文章

nginx配置项目,配置文件及相应linux命令

云服务器安装nginx步骤 安装nginx: yum install nginx 启动nginx: nginx 停止nginx: nginx -s stop 配置文件路径/etc/nginx/conf.d/ 上传配置文件到这个目录下,然后重启nginx 配置文件(单云服务器配置单项目&…

uniapp兼容微信小程序和支付宝小程序遇到的坑

1、支付宝不支持v-show 改为v-if。 2、v-html App端和H5端支持 v-html ,微信小程序会被转为 rich-text,其他端不支持 v-html。 解决方法:去插件市场找一个支持跨端的富文本组件。 3、导航栏处有背景色延伸至导航栏外 兼容微信小程序和支…

小研究 - JVM 垃圾回收方式性能研究(三)

本文从几种JVM垃圾回收方式及原理出发,研究了在 SPEC jbb2015基准测试中不同垃圾回收方式对于JVM 性能的影响,并通过最终测试数据对比,给出了不同应用场景下如何选择垃圾回收策略的方法。 目录 4 垃圾回收器性能比较 4.1 测试结果 5 结语 …

Ubuntu /dev/loop<0..n>挂载的目录的分析

执行命令df -h lkmaoubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 1.6G 0 1.6G 0% /dev tmpfs 391M 2.1M 389M 1% /run /dev/sda1 59G 30G 26G 54% / tmpfs 2.0G 0 2.0G 0% /dev/s…

fpga开发--蜂鸣器发出连续不同的音调

描述 使用fpga蜂鸣器连续发出do,re,mi,fa,so,la,xi七个不同的音调,每个音调的持续时间为0.5s。 思路 采用状态机实现音调的转化,当do状态持续了0.5s之后转移到re状态,…

【Git】修改文件版本回退撤销修改删除文件

文章目录 修改文件版本回退git reset语法规则注意 撤销修改情况1:工作区的代码还未add情况2:工作区的代码已经add 但未commit情况3:工作区的代码已经add 并且已经 commit 删除文件 修改文件 Git⽐其他版本控制系统设计得优秀,Git…

【Solr】Solr搜索引擎使用

文章目录 一、什么是Solr?二 、数据库本身就支持搜索啊,干嘛还要搞个什么solr?三、如果我们想要使用solr那么首先我们得安装它 一、什么是Solr? 其实我们大多数人都使用过Solr,也许你不会相信我说的这句话,但是事实却是如此啊 ! 每当你想买自己喜欢的东东时,你可能会打开某…

chatgpt 接口使用(一)

使用api实现功能 参考链接:https://platform.openai.com/examples 安装库: pip3 install openai 例如: import os import openaiopenai.api_key os.getenv("OPENAI_API_KEY") response openai.ChatCompletion.create(model&q…

jenkins 配置git

在linux 中输入 保证git 安装成功 git --version使用查看git 安装目录(非源码安装直接用yum 安装的) which gitjenkins 中到 系统管理–>全局工具配置–> Git installations 新建一个项目 选择自由风格 源码管理选择 git 如果使用的是码云&a…

SpringBoot多环境开发-配置文件

在Spring Boot中进行多环境开发时,你可以使用配置文件来定义每个环境的属性。Spring Boot提供了一种方便的方式来管理和加载不同环境的配置文件。 以下是一些常见的配置文件命名约定: application.properties: 默认的配置文件,适用于所有环…

JAVASE---运算符

1.算术运算符 基本四则运算符:加减乘除模( - * / %) int a 20; int b 10; System.out.println(a b); // 30 System.out.println(a - b); // 10 System.out.println(a * b); // 200 System.out.println(a / b); // 2 System.out.println(a % b); // 0 --->模…

VS2022和QT混合编程打包发布程序

1.在开始菜单输入 CMD 找到 Qt5.15.2(MSVC 64-bit) 2.输入windeployqt exe所在路径 3.运行完毕后,双击打开exe文件,可能会报错,缺少相关的dll,找到缺少的dll拷贝到运行文件夹下即可。

Springboot与ElasticJob

yaml配置 <dependency><groupId>com.dangdang</groupId><artifactId>elastic-job-lite-spring</artifactId><version>2.1.5</version></dependency><dependency><groupId>org.slf4j</groupId><artifactI…

【iOS】KVC KVO 总结

文章目录 KVC1. KVC赋值原理 setValue:forKey:2. KVC取值原理 valueForKey:3. 注意4. KVC的批量存值和取值 KVO 使用1. KVO的介绍2. KVO监听的步骤注册监听监听实现移除监听例子 3. KVO的传值4. KVO注意5. KVO的使用场景 KVO原理1. KVO的本质是改变了setter方法的调用2. _NSSet…

矩阵对角线元素的和

题目&#xff1a; 给你一个正方形矩阵 mat&#xff0c;请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例&#xff1a; 输入&#xff1a;mat [[1,2,3], [4,5,6], [7,8,9]] 输出&#xff…

【图论】树上差分(边差分)

一.简介 其实点差分和边差分区别不大。 点差分中&#xff0c;d数组存储的是树上的节点 边差分中&#xff0c;d数组存储的是当前节点到父节点的那条边的差分值。 指定注意的是&#xff1a;边差分中因为根连的父节点是虚点&#xff0c;所以遍历结果时应当忽略&#xff01; 二…

暑假刷题第18天--7/30

165. 小猫爬山 - AcWing题库(dfs) #include<iostream> #include<string> #include<bitset> #include<cstring> #include<algorithm> using namespace std; const int N18; bool vis[N]; int a[N],n,ans,sum[N],k; bool cmp(int x,int y){retur…

【Rust学习 | 基础系列3 | Hello, Rust】编写并运行第一个Rust程序

文章目录 前言一&#xff0c;创建项目二&#xff0c;两种编译方式1. 使用rustc编译器编译2. 使用Cargo编译 总结 前言 在开始学习任何一门新的编程语言时&#xff0c;都会从编写一个简单的 “Hello, World!” 程序开始。在这一章节中&#xff0c;将会介绍如何在Rust中编写并运…

页面访问控制远程仓库

页面访问权限控制 什么是jwt身份认证 在前后端分离模式的开发中&#xff0c;服务器如何知道来访者的身份呢&#xff1f; 在登录后&#xff0c;服务器会响应给用户一个 令牌 &#xff08;token&#xff09;令牌中会包括该用户的id等唯一标识浏览器收到令牌后&#xff0c;自己…

Yolov8训练自己的数据集合(最新实验数据)

一、安装环境 笔者环境如下&#xff1a; win10 anaconda python3.8二、clone代码 地址如下&#xff0c;可以直接使用git命令进行clone,也可以直接去网站下载 git clone https://github.com/ultralytics/ultralytics代码目录如下所示 三、安装必要的库 其实这里比较重要的是…