当前位置: 首页 > news >正文

【Django】在view中调用channel来主动进行websocket通信

前提:consumer中已经写好了建立连接的代码,并且能够成功把连接加入到通道层的组内

可以参考我的另一个博客:

LuckySheet协同编辑后端示例(Django+Channel,Websocket通信)_lucksheet 协同编辑-CSDN博客

我是懒得去折腾luckysheet的源码,所以尽量去把功能在后端实现,但是又需要一些功能来通过点击按钮实现把消息广播出去,所以就在视图函数里进行消息广播,同理在别的任意类型的函数中也可以使用。具体代码如下:
 

from channels.layers import get_channel_layer
import asyncio    def send_message(self):# 获取通道层实例channel_layer = get_channel_layer()async def send_group_message():await channel_layer.group_send("group_name",  # 替换为实际的组名,要和消费者加入的组名对应{"type": "broadcast_message",  # 替换为消费者中处理该消息的对应方法名"message": "Message from the view"})# 运行异步函数来执行消息发送操作loop = asyncio.new_event_loop()asyncio.set_event_loop(loop)try:loop.run_until_complete(send_group_message())finally:loop.close()

相关文章:

【Django】在view中调用channel来主动进行websocket通信

前提:consumer中已经写好了建立连接的代码,并且能够成功把连接加入到通道层的组内 可以参考我的另一个博客: LuckySheet协同编辑后端示例(DjangoChannel,Websocket通信)_lucksheet 协同编辑-CSDN博客 我是懒得去折腾luckysheet的源码&…...

18.[极客大挑战 2019]BabySQL1

进入靶场 随便输输 再输输 可以判断是单引号闭合 再随便输输 查询字段数量 得,过滤了 关键字也过滤了 只能双写了 根据回显,这样可以,只是需要改改 1,2不行 1,2,3行 1,2,3,4不行 可以尝试得到库名,表名了 库名 database(…...

Python快速入门二:Python3 基础语法

一、编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码: # -*- coding: cp-1252 -*-上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适…...

1-1 C语言链表

目录 目录 1.0 定义 2.0 为什么使用链表 3.0 链表原理 4.0 创建链表节点 5.0 链表原理续 6.0 链表实现 6.0.1 创建节点 6.0.2 初始化链表 6.0.3 添加链表节点 6.0.4 循环遍历 6.0.5 插入节点 6.0.6 插入头结点main函数 7.0 完整代码 8.0 节点添加方案二 8.0.1 …...

[0629].第29节:配置中心业务规则与动态刷新

我的后端学习大纲 SpringCloud学习大纲 1、编码实现3377服务: 1.1.建module: 1.2.改pom: 1.3.写YML: 1.Nacos同Consul一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正…...

mac: docker : Command not found解决

描述: 安装docker但是docker命令显示Command not found 分析: mac没有配置对应的环境变量 解决方案: 打开配置文件: vim ~/.zshrc写docker环境变量: export PATH"/Applications/Docker.app/Contents/Resources/bin:$PATH"保存退出: esc,输入wq,按enter 配置文…...

Django drf基于APIView 快速使用

1. 注册 # settings.pyINSTALLED_APPS [,rest_framework, ]2. 路由 from django.urls import pathurlpatterns [path(task/, views.TaskAPIView.as_view()) ]3. 视图 from rest_framework.views import APIView from rest_framework.response import Responseclass TaskAPIV…...

【MarsCode】每日一题数组 之 数字分组求偶数和

数字分组求偶数和 1.问题描述 问题描述 小M面对一组从 1 到 9 的数字,这些数字被分成多个小组,并从每个小组中选择一个数字组成一个新的数。目标是使得这个新数的各位数字之和为偶数。任务是计算出有多少种不同的分组和选择方法可以达到这一目标。 n…...

解决:error: subprocess-exited-with-error 的问题

系统和配置: ubuntu20.04 python3.10 torch2.5.1 pip install时报错如下 (实际指令是:pip3 install -r drl_grasping/python_requirements.txt) Collecting python-xlib>0.17 (from pynput1.7.6->-r drl_grasping/python_…...

使用腾讯混元(HunYuanVideo)视频模型FP8量化版本来生成绅士动画,模型体积30G,8G甜品卡可玩,2秒视频需要15分钟

腾讯混元(HunYuanVideo)视频模型发布以来,视频效果有口皆碑,但由于推理门槛比较高,消费级显卡用户望而却步,最近大神Kijai发布了FP8量化版本模型,使得甜品卡用户也有了一餐秀色的可能。 本次我们利用HunYuanVideo量化…...

使用Ancona安装node,安装vue

搜索Conda仓库中可用的Node.js版本 conda search nodejs 通过Conda安装Node.js conda install nodejs 检查已安装的Node.js版本 node -v 安装中国npm镜像(cnpm) conda install cnpm 使用cnpm全局安装Vue CLI cnpm install -g vue/cli...

如何“安装Android SDK“?

一、下载 https://android-sdk.en.softonic.com/ 二、解压(不能有中文) 三、配置环境变量 1、ANDROID_HOME:D:\android-sdk 2、在Path添加文件路径 四、验证 adb version...

天童教育:提升孩子的语言表达能力

语言表达能力如同阳光、空气和水,无处不在,无时不用。然而,很多人并没有意识到,想要让孩子能够良好适应社会生活,提升他们的语言表达能力是至关重要的。大连天童教育认为,我们务必重视孩子的语言表达能力&a…...

Node.js中JWT的token完整生命周期管理:从生成到销毁

Node.js中JWT的token完整生命周期管理:从生成到销毁 在Node.js中使用JWT(JSON Web Token)进行身份验证和授权是一种常见的实践。下面详细介绍JWT从生成到销毁的过程。 JWT生成 安装jsonwebtoken库: 要生成JWT,首先…...

Kotlin报错:lateinit property xxx has not been initialized

Kotlin报错:lateinit property xxx has not been initialized 发生在定义了一个名为xxx的lateinit变量。 解决,在调用前,可以先判断一层该xxx变量是否已经初始化: if (this::xxx.isInitialized) {//正常使用该变量} kotlin.Unini…...

debian编译失败

A、缘由和分析 debian的代码在删除该路径下的2个包后, 重新全编,编译不过的问题。 至于我为什么删除这2个包,这是因为在sdk第一次编译时一些文件已经打包进去了,我现在的修改无法更新进img中,而现在我的项目中不需要…...

flink-connector-mysql-cdc:03 mysql-cdc常见问题汇总

flink-connector-mysql-cdc: 01 mysql-cdc基础配置代码演示02 mysql-cdc高级扩展03 mysql-cdc常见问题汇总04 mysql-cdc-kafka生产级代码分享05 flink-kafka-doris生产级代码分享06 flink-kafka-hudi生产级代码分享flink-cdc版本:3.2.0 flink版本:flink-1.18.0 mysql版本:…...

JSP技术发展现状

多年前,Java入门时学习的JSP可谓时风光无限,J2EE如日中天,短短数年,技术迭代更新光速般发展,有些技术慢慢就退出历史舞台。 JSP(Java Server Pages) 技术在早期 Java Web 开发中曾是构建动态网…...

浏览器同源策略、跨域、跨域请求,服务器处理没、跨域解决方案

目录 什么是同源策略什么是跨域发生跨域时,服务器有没有接到请求并处理响应:(两种情况) 如何解决跨域 什么是同源策略 概念: 同源策略是浏览器的一种安全机制,用于防止恶意网站对用户的敏感数据进行未经授…...

flink-connector-mysql-cdc:02 mysql-cdc高级扩展

flink-connector-mysql-cdc:01 mysql-cdc基础配置代码演示02 mysql-cdc高级扩展03 mysql-cdc常见问题汇总04 mysql-cdc-kafka生产级代码分享05 flink-kafka-doris生产级代码分享06 flink-kafka-hudi生产级代码分享 flink-cdc版本:3.2.0flink版本&#xf…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言:多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

【Oracle APEX开发小技巧12】

有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...