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

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

技术栈

  • 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.kler.cn/a/296670.html

相关文章:

  • windows下端口不能绑定 但是也没有被占用的解决
  • K8S(Kubernetes)开源的容器编排平台安装步骤详解
  • 最大矩阵和
  • 某云彩SRM2.0任意文件下载漏洞
  • Android studio 更换下载的gradle
  • Spring Boot 常用注解详解
  • 数据结构(五)----树(含堆)
  • 热血江湖2.0稀有资源单机架设 + 虚拟机一键端 +GM 工具
  • 【系统架构设计师】抽象工厂设计模式
  • Grafana进阶教程:使用Loki、Tempo进行日志与追踪可视化
  • 电脑物理地址怎么修改方法
  • 苹果被删视频怎么恢复?分享4个靠谱的方法
  • 机器学习:opencv图像识别--模版匹配
  • fastdmin数据表格顶部添加合并行/底部合计行并且改变颜色
  • CleanClip for mac(苹果电脑剪切板管理器)
  • 场景感知技术带您重塑未来生活的新篇章
  • VisualStudio环境搭建C++
  • 栈的括号匹配与循环队列
  • 解决Idea 配置文件无法提醒的功能
  • Buzzer:一款针对eBPF的安全检测与模糊测试工具