SpringBoot:WebSocket实现消息撤回、图片撤回
下面只是讲述一下实现思路,代码基本没有哈!有时间单独发表一篇关于websocket的相关操作的博客。
1. 消息撤回、图片撤回
个人觉得关于撤回,需要下述几个过程:
- 发送的消息的标签上可以定义一个属性,这个属性的值应该是唯一的,js简单实现如下:
randomId:function () {let time = new Date().getTime();// 时间戳let num1 = Math.floor(Math.random()*1000);let str_1 = time + '' + num1;let ans = '';for(let i=0;i<str_1.length;i++){ans += String.fromCharCode(parseInt(str_1[i])+97);}return ans;}// 生成随机id
上述代码用时间戳结合随机数实现属性值的唯一性。
- 发送消息这一端撤回消息只需简单使用js进行标签删除即可;在接收端这一端撤回消息操作为需要发送消息端ws.send往服务器发送一条消息,然后服务器进行转发,除了不转发到发送消息端的用户之外,其他用户的客户端那边都应该接收到这一条消息,这条消息的数据应该有上述那个唯一值(id),然后在消息栏那里找到这个属性值是这个唯一值(id)的标签,进行相关js操作标签删除即可。
- 如果还想实现下述提示信息,对于在消息撤回发起端,只需在当前删除标签元素后再插入一个标签元素即可,而在消息撤回接收端ws.onmessage需要做的就是删除这个消息标签元素之前,获取到这个标签元素的用户信息,之后操作和消息撤回发起端基本一致。
消息撤回发起端
消息撤回接收端
2. AI 讲的撤回消息操作
在客户端实现撤回功能,即当用户想要撤回某条消息时,客户端将该消息标记为已删除,并发送一条删除消息到服务器,让服务器知道用户的操作。在其他客户端上,该消息将被标记为已删除并不再显示。
使用消息历史记录来实现撤回功能。在服务器端,将所有消息存储到数据库中,并保留消息的时间戳。当用户想要撤回某条消息时,服务器将该消息标记为已删除,并将所有其他客户端的历史消息重新加载以显示更新内容。
实现“防止误操作”的策略。这种策略可以避免用户发送错误的消息。例如,用户发送消息后,将等待一段时间以进行确认,如果用户在此期间撤回了消息,则系统将撤回消息。否则,消息将被发送并不可撤回。
可以看到AI说的第一点和上述基本一致,其他两种高深一些哈!
SpringBoot:WebSocket实现消息撤回、图片撤回相关推荐
- springboot websocket订单消息提醒
WebSocketConfig.java package com.yizhen.config;import org.springframework.context.annotation.Bean; i ...
- 如何用python代替微信接受消息,查看撤回消息(itchat实现)
引言 众所周知python有一个功能十分强大的库- - itchat.本篇文章将用Python实现微信的接受消息,防撤回等功能,这些功能的实现离不开itchat的运用. itchat基本介绍 1.如何 ...
- springboot定时发送短信_springboot 整合websocket实现消息推送(主动推送,具体用户推送,群发,定时推送)...
websocket springboot 整合websocket实现消息推送(主动推送,具体用户推送,群发,定时推送) 使用WebSocket构建交互式Web应用程序 本指南将引导您完成创建" ...
- 企业微信消息多久可以撤回?企业微信怎么查看撤回的消息?
大家都知道,个人微信是可以撤回两分钟以内的消息,超过两分钟就无法撤回了.那企业微信可以撤回发送了多久的消息呢?撤回的消息还能够查看吗?跟着企业微信服务商艾客scrm小编,一起来看看吧. 其实,我们使用 ...
- 用Python写微信防撤回脚本,锁定那些被撤回的消息,就是撤回了也可以看到
如果好友短时间发送多条消息然后撤回会难以判断究竟撤回的是哪条信息,只能靠猜.后来我觉得"猜"这个事情特别不Pythonic,研究一段时间后找到了解决方案,不得不惊叹ItChat真的 ...
- 若依+websocket+springboot+elementui 实现消息推送
场景 服务端有定时任务,会监测预警的一些事件,当定时任务监测到预警产生的时候,需要向WEB端推送预警的内容,实现效果如下图所示: 实现思路 我使用的框架后端是若依架构,定时任务加websocket通讯 ...
- 遇到问题:微信发错消息,需要撤回,但超过了撤回时间,怎么办?
问题 遇到一个问题:微信发错了消息,需要撤回,但超过了撤回时间,怎么办? 我的解决方案是:重复发送大量消息(上百条或上千条),冲走错误消息. 对好友/群友的解释是:手机出了问题,不小心发送了大量消息. ...
- Springboot + WebSocket 实现在线聊天
一.后端 1.在Springboot项目的pom.xml中添加依赖 <!--websocket协议--> <dependency><groupId>org.spri ...
- springboot+websocket+layui制作的实时聊天室,后端开发入门样例
实时聊天室 前言 效果图 涉及技术 springboot layui websocket 实现思路 websocket在springboot下的实现 前端实现 建立websocket连接 前端对应的w ...
最新文章
- C#开发C/S结构如何通信的问题?
- 新东方在线、猿辅导等强敌环伺,「好未来」可有好未来?
- 截屏状态监听 - iOS
- Godaddy Windows主机组件支持情况
- 把socket相关函数封装成类
- 忽然发现自己少了很多爱好。。。。。。。。。
- delphi 连接DBF
- html css js网页制作实例,HTML+CSS+JavaScript网页制作案例教程
- c3300 京瓷km5050_京瓷复印机通用维修代码2
- 快排,归并(日常复习)
- 指纹识别属于计算机技术,指纹识别技术属于人工智能吗 指纹识别技术什么时候发明的-与非网...
- 医保卡不用填写也可以报销的医院(A类定点医疗机构)
- C语言解数独(含源码) 2020/8/19
- 调研目前主要的开源网络爬虫,并且说明各自的特点、局限性以及相互之间的区别
- 计算机毕业设计Python+uniapp校园服务微信小程序(小程序+源码+LW)
- Excel VBA Sheets和Worksheets的区别
- 小程序成为多社交平台引流利器
- 为subclipse配置http代理,解决“RA layer request failed, Unable to connect to a repository at URL ... 错误
- html不同板块点击切换,板块快速切换的操作策略
- 相机光学(十五)——如何提高相机标定的精度
热门文章
- Unexpected end of JSON input while parsing near ‘...-----END PGP SIGNATUR‘
- 解决微信播放背景音乐
- Docker 学习总结(74)—— Docker Swarm 全面总结
- 【DIY】用方块世界建立像素化客家围龙屋3D模型
- OPPO Find X6 Pro屏幕参数怎么样 OPPO Find X6 Pro摄像头参数
- 联想r9000p电脑外接显示屏黑屏问题解决
- 文献阅读Leveraging Word-Formation Knowledge for Chinese Word Sense Disambiguation
- Applese 的QQ群--(判断图是否成环)
- 【一封传话】一行代码实现微信消息推送
- oracle+12514+C#,Oracle10g ORA-12514