【即时通讯】轮询方式实现

news/2024/9/17 20:57:34/ 标签: django

技术栈

  • LayUI、jQuery实现前端效果。
  • django4.2、django-ninja实现后端接口。
    代码仓 - 后端
    代码仓 - 前端

实现功能

  • 首次访问页面并发送消息时需要设置昵称
  • 发送内容为空时要提示用户不能发送空消息
  • 前端定时获取消息,然后展示在页面上。

效果展示

  • 首次发送需要设置昵称
    在这里插入图片描述
  • 发送消息与消息展示
    在这里插入图片描述
  • 提示用户不能发送空消息
    在这里插入图片描述

后端接口

  • 发送消息
DB = []
@router.post("/poll/send/message")
def send_message_api(request: WSGIRequest, message: MessageSchema) -> JsonResponse:"""轮询通讯接收消息接口:param request: WSGIRequest:param message: MessageSchema:return: JsonResponse"""message_info = message.dict()DB.append(message_info)return JsonResponse({"ok": True})

在这里插入图片描述

  • 获取消息
@router.get("/poll/get/messages")
def get_messages_api(request: WSGIRequest, startIndex: int) -> JsonResponse:"""轮询通讯获取消息接口:param request: WSGIRequest:param startIndex: int 上次获取聊天记录的最后位置"""context = {"data": DB[startIndex:],"maxIndex": len(DB)}return JsonResponse(context)

在这里插入图片描述


http://www.ppmy.cn/news/1525103.html

相关文章

软件设计师の第三章:数据库技术基础

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

已开源!无限场景生成和高效数据迁移:3D金字塔扩散模型斩获ECCV24 Oral

作者主页: https://yuheng.ink/ 论文标题: Pyramid Diffusion for Fine 3D Large Scene Generation 导读: 本文通过设计一种新颖的金字塔扩散模型,为三维室外场景生成提供了一种从粗到细的策略。本文对金字塔扩散模型进行了大量实…

系统设计文档示例

设计文档示例 文章目录 设计文档示例一、整体架构二、业务或功能-模块设计2.1、需求说明2.2、交互流程2.3、页面设计2.4、功能实现逻辑2.4.1 API设计2.4.2 DB设计 三、 配置说明四、开发示例 一、整体架构 系统架构图简要说明部署架构图简要说明功能模块图简要说明技术架构:前…

Reactive 编程-Loom 项目(虚拟线程)

Reactive 编程与 Loom 项目(虚拟线程) Java 项目 Loom 是 Oracle 在 JVM 上的一项重大变革,旨在引入 虚拟线程(Virtual Threads),以简化并发编程。传统的 Java 线程是重量级的,由操作系统管理&…

深入解析C++单例模式:从基础到线程安全的高效实现

引言 在C开发中,单例模式(Singleton Pattern) 是一种常见且重要的设计模式。它确保类的实例在整个程序生命周期中唯一,并提供一个全局访问点。这在日志管理、配置管理等场景中尤为常见。本篇博客将带你深入了解单例模式的实现原理…

单例模式的总结

常规模式:有属性/构造方法/普通方法,也可以在类中执行主方法,也可以在test类中执行主方法 单例模式是什么? 单例模式:类只有1个对象;保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式是在内…

uniapp uni-table合并单元格

视图层 <uni-table border stripe emptyText"暂无更多数据" class"table_x"><!-- 表头行 --><uni-tr><uni-th align"center">患者姓名</uni-th><uni-th align"center">透析方式</uni-th>&…

常用设计模式的通俗解释和c语言实现

单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问点。 通俗解释:想象一个公司只能有一个CEO。无论你如何尝试创建新的CEO,你总是会得到同一个人。 #include <stdio.h> #include <stdlib.h>typedef struct {int data; } Singleton;static Singleton* i…

设计模式 23 访问者模式

设计模式 23 创建型模式&#xff08;5&#xff09;&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式&#xff08;7&#xff09;&#xff1a;适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式、代理模式行为型模式&#xff…

Vue3+TS项目给el-button统一封装一个点击后转圈效果的钩子函数按钮防抖

前言 每个按钮都要单独定义一个loading变量&#xff0c;并且在接口请求前修改为true&#xff0c;接口响应后再修改为false&#xff0c;封装后这段重复的逻辑就可以统一管理不用每次都写一遍了。 效果 新建一个公共的src\common.ts import { ref } from "vue"expor…

【有啥问啥】探索扫地机器人中的 SLAM 算法:原理、实现与未来展望

探索扫地机器人中的 SLAM 算法&#xff1a;原理、实现与未来展望 随着智能家居的普及&#xff0c;扫地机器人逐渐成为日常生活中的常见家电。其自主导航能力使得它能够在复杂的家庭环境中高效完成清洁任务&#xff0c;而这背后的核心技术之一就是 SLAM&#xff08;Simultaneou…

git的快速合并fast-forward merge详解

文章目录 1. 什么是快进合并&#xff1f;2. 快进合并的前提条件3. 快进合并的工作原理3.1 示例场景&#xff1a;3.2 使用命令&#xff1a;3.3 快进合并的视觉效果&#xff1a; 4. 快进合并的优点5. 快进合并的缺点6. 快进合并 vs 非快进合并6.1 非快进合并&#xff1a;6.2 非快…

【Linux】ps -ef 与 ps aux 的区别及 “|” “grep” 的详解

前言&#xff1a;虽然 ps -ef 与 ps aux 命令都能查看进程运行情况&#xff0c;但两者之间还是有一些细致区别。 一、格式与输出 1、ps -ef/ps -Af&#xff1a; -e是显示所有进程&#xff0c;包括其他用户的进程。-A属于-e别名&#xff0c;功能相同。 -f &#xff1a;显示更…

Android TextView 学习备忘

1.android:gravity 与 android:layout_gravity&#xff1a; Android TextView文本位置_mob649e8166858d的技术博客_51CTO博客https://blog.51cto.com/u_16175509/8597723 2.设置字体样式&#xff1a; android:fontFamily"font/my_custom_font"android:textStyle&qu…

Android SystemUI组件(05)状态栏-系统状态图标显示管理

该系列文章总纲链接&#xff1a;专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节持续迭代之前章节的思维导图&#xff0c;主要关注下方 SystemBars分析中状态栏中的部分-系统状态图标显示&管理 即可。 1 系统状态图标显…

SenseGlove机器臂遥操作控制:技术优势与高危作业安全保障

在追求高效与安全的工业时代&#xff0c;高危作业任务始终是行业发展的一大障碍。SenseGlove力反馈手套机器臂遥操作应用案例的出现&#xff0c;凭借其独特的技术优势&#xff0c;为解决这一难题提供了创新性解决方案。 一、技术优势 高精度的力反馈技术&#xff1a;SenseGlove…

CTF——简单的《WEB》

文章目录 一、WEB1、easysql2、baby_web3、baby_sql4、upload_easy5、easygame拓展1.1拓展1.2 6、ht_ssti7、包容乃大 一、WEB 1、easysql 题目描述&#xff1a; sql注入漏洞 1.常用的sql注入测试语句 2.sql注入bypass 解题思路 这边提示基本给的也很完整的&#xff0c;不…

基于中心点的目标检测方法CenterNet—CVPR2019

Anchor Free目标检测算法—CenterNet Objects as Points论文解析 Anchor Free和Anchor Base方法的区别在于是否在检测的过程中生成大量的先验框。CenterNet直接预测物体的中心点的位置坐标。 CenterNet本质上类似于一种关键点的识别。识别的是物体的中心点位置。 有了中心点之…

关于Python爬虫的基础知识

爬虫是一种自动获取网页内容的程序或工具。以下是一些关于爬虫的基础知识&#xff1a; 一、爬虫的工作原理 发送请求&#xff1a; 爬虫首先向目标网站发送 HTTP 请求&#xff0c;就像你在浏览器中输入网址并访问一样。请求中包含了一些信息&#xff0c;如请求方法&#xff08;…

Spring Boot集成Akka Stream快速入门Demo

1.什么是Akka Stream&#xff1f; Akka Streams是一个用于处理和传输元素序列的库。它建立在Akka Actors之上&#xff0c;使流的摄入和处理变得简单。由于它是建立在Akka Actors之上的&#xff0c;它为Akka现有的actor模型提供了一个更高层次的抽象。Akka流由3个主要部分组成-…