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

news2024/9/20 14:53:06

技术栈

  • 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.coloradmin.cn/o/2118211.html

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

相关文章

【java入门】八大基本数据类型与变量的声明与使用,超详细讲解!

🚀 个人简介:某大型国企资深软件开发工程师,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~ 💟 作 者:码喽的自我修养&#x1f9…

【PyCharm使用教程】PyCharm的基本使用教程,适合完全零基础,小白快速上手!(Python+PyCharm安装包)

如果你正在学习Python,但是找不到方向的话可以试试我这一份学习方法和籽料呀!点击 [领取籽料](不要米米) Pycharm的基本使用教程 【一】PIP换源 ①问题描述 在使用Python时需要经常用到pip安装第三方包。在某些情况下由于网络速…

基于C++实现(控制台)学生成绩管理系统

学生成绩管理系统 一、系统需求分析 一个巨大的学校有数以万计的教工、学生和相应的资料需要管理。一个好的学生成绩管理系统可以协助管理员管理巨大的数据库,允许管理员、教师跟学生这三种用户登录进行相应的操作。 管理员具有管理数据库的一切权限。管理员负责…

兔英语语法体系——观后笔记

目录 一、视频链接 二、视频前言 三、简单句(Simple Sentences) 1. 可独立完成的动作 2. 有1个动作的承受者 3. 有两个动作承受者 4. 只有一个动作承受者(但需补充) 5. 非 “动作” 6. 总结 四、五大基本句型 五、句子成分 6. 定语 7. 状语 8. 同位语 9. 总结 …

[SWPUCTF 2022 新生赛]

目录 [SWPUCTF 2022 新生赛]ez_rce 什么是poc? [SWPUCTF 2022 新生赛]where_am_i [SWPUCTF 2022 新生赛]js_sign [SWPUCTF 2022 新生赛]xff ​[SWPUCTF 2022 新生赛]numgame call_user_func()函数 ::双冒号运算符 [SWPUCTF 2022 新生赛]ez_sql [SWPUCTF 2…

Anylogic比较运行实验

比较运行实验案例: 设置好参数后,点击左下角的开始,即可运算出结果 设置图例参数,在界面上图例显示为改变的变量值:

雕虫小技:解决VSCode中extern “C“的代码缩进问题

问题现象 创建一个标准的C语言头文件:foo.h #ifndef _FOO_H_ #define _FOO_H_#ifdef __cplusplus extern "C" { #endif/************************************************************************** * Include Files …

Security(lt2)

some basic terminology • plaintext - original message • ciphertext - coded message • cipher - algorithm for transforming plaintext to ciphertext • key - info used in cipher known only to sender/receiver • encipher (encrypt) - converting plaintext to …

从fasta文件中提取指定长度序列构建矩阵

要从 FASTA 文件中提取指定长度的序列并构建矩阵,你可以使用 BioPython 库,它可以方便地处理生物序列数据。你可以通过从 FASTA 文件中读取序列,然后将每个序列拆分成指定长度的子序列,最终构建矩阵。 以下是一个示例代码&#x…

深兰科技董事长陈海波出席《中马建交五十周年高级别经贸合作》

2024年9月3日,中马建交50周年高级别经贸合作交流会暨马来西亚第九任首相VIP欢迎晚宴在北京隆重举行,深兰科技创始人、董事长陈海波先生应邀出席。 会议期间,双方举行了品牌出海合作签约仪式。在马来西亚首相雅各布先生的见证下,深…

分解+优化+组合+对比!核心无忧!VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测

分解优化组合对比!核心无忧!VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测 目录 分解优化组合对比!核心无忧!VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.…

万字长文带你窥探Spring中所有的扩展点

写在前面 Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引…

直流负载技术介绍

直流负载技术是一种用于控制和调节电力系统运行状态的重要技术。它主要通过对电力系统中的直流负载进行有效的管理和控制,以保证电力系统的稳定运行,提高电力系统的运行效率,降低电力系统的运行成本。 直流负载技术主要包括直流负载的检测、…

csdn有xss漏洞吗?

csdn有xss漏洞吗? 图片111?

GNU风格代码编译(27)

1makefile 的规则 命令必须使用tab 按键, 而不能使用 空格按键。 1. TARGETstart 2. TARGETCmain 3. all: 4. arm-none-linux-gnueabi-gcc -O0 -g -c -o $(TARGETC).o $(TARGETC).c 5. arm-none-linux-gnueabi-gcc -O0 -g -c -o $(TARGET).o $(TARGET).s…

米壳AI:分享一个轻松保存外网高清原视频的方法!

hello!各位小伙伴们,你们好呀!今天我要给大家分享一个超级实用的工具 ——medio.cool。 在这个信息全球化的时代,我们常常会被国外的精彩视频所吸引,然而如果我们想到外网下载视频,最高只可以保存 720p 的画…

AI 智能体: 一篇文章,解锁你的第一张 Coze 卡片

你是否和我一样,看多了用大量文字堆积的回复结果就会感到腻呢? 相比于枯燥乏味的文字,大家更喜欢图文并茂的呈现方式。 图片中,左侧是生成的卡片,右侧是没有配置卡片的效果。你会选哪一个? 或许&#xf…

假期学习-- iOS 通知详解

iOS 通知详解 数据结构 从我们之前使用通知的流程和代码来看,通知其实就是一个单例,方便随时访问。 NSNotificationCenter:消息中心 这个单例类中主要定义了两个表,一个存储所有注册通知信息的表的结构体,一个保存…

自定义一个maven插件,deploy(推送)依赖到私服的时候企业微信群里通知

很多时候,项目里面会引入各种同公司写的依赖,而这些依赖有时候更新到了nexus私服,其他人又不知道,导致本地的代码执行不符合预期。 我们这就有这种情况,因为依赖还处于开发阶段,并不是一个release版本&…

基于vue框架的车辆维修管理系统的设计与实现pvno9(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目管理:普管,驾驶员,维修员,维修出库,采购入库,配件信息,车辆信息,维修申请,维修费用 开题报告内容 基于Vue框架的车辆维修管理系统的设计与实现开题报告 一、项目背景与意义 随着汽车保有量的不断增加,车辆维修行业面临着前所未…