利用websocket实现一对一聊天

一对一聊天websocket

    • 1. 效果展示
    • 2. 业务分析(逻辑展示...)
    • 3. 技术点

  • 功能
    1. 即时发送消息||随时发送消息
    2. 历史消息显示
    3. 已读未读状态

1. 效果展示

  • 由于没做登录,就以jack和rose两人聊天

  • 两人可相互发消息

  • 持续输出. .

  • 当只有jack在线时

  • 嘤嘤嘤怪上线

  • jack发出的消息未读改为已读

  • 当jack离线,rose想jack了

  • jack上线了(jack已读)

2. 业务分析(逻辑展示…)

发送的消息默认未读
1. 加载页面查询jack和rose之间的历史消息
2. 修改发给jack的历史消息状态为已读
3. jack发送通知到服务器,发给jack的消息已经收到,
服务器再用websocket发送消息到rose,把未读消息不做展示上面分析了rose不在线的情况下,当两人同时在线的情况
4. jack发送消息到服务器,服务器保存消息,在把消息转发到rose
5. rose收到消息,修改jack发给rose的消息为已读(js websocket)
6. 然后rose通过ajax发送消息到服务器,服务器通知jack 把未读消息不做展示

3. 技术点

后台1. java websocket 传输部分业务数据2. servlet, 数据库技术, json 作为数据传输 3. oracle 作为持久化存储
页面1. html+css+js2. js有jQuery, ajax, js websocket, js dom操作

具体的websocket代码实现

gitHub项目下载地址

嘤嘤嘤. .

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420735.shtml

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

相关文章

中文分词--词典分词--最长匹配

(个人学习笔记,慎重参考) 1 基本概念 中文分词 指的是将一段文本拆分为一系列单词的过程,这些单词顺序拼接后等于原文本。 作为中文信息处理的第一站,是后续nlp任务的基础,中文分词算法大致可分为词典规则…

PLSQL Developer 运用Profiler 分析存储过程性能

最近应公司需要,需要编写ORACLE存储过程。本人新手,在完成存储过程的编写后,感觉需要对存储过程中各个语句的执行时间进行分析,以便 对整个存储过程进行优化。 由于用的是PLSQL Developer 客户端工具,而网上大多介绍的…

四、Dynamic-programming algorithm Dynamic--LCS

(学习笔记,无什参考价值!) 1 问题 2 算法 2.1 Brute-force LCS algorithm 检查每一个subsequence是否是yyy的子列时,遍历yyy的每一个元素,看是否依次可以全部覆盖subsequence所有元素,所以其复杂度为O(n)O(n)O(n); …

五、分治法应用--矩阵乘法

1 朴素算法 这个算法就是矩阵乘法的定义: 很容易看出这个算法复杂度是Θ(n3)\Theta(n^3)Θ(n3)。 2 递归算法 分治法首先是从分割问题开始的,得到数学上的递归关系后,然后使用递归的方式实现。 由上面的数学性质,可以使用递…

POJ 1300 Door Man(欧拉回路的判定)

题目链接 题意 : 庄园有很多房间,编号从0到n-1,能否找到一条路径经过所有开着的门,并且使得通过门之后就把门关上,关上的再也不打开,最后能回到编号为0的房间。 思路 : 这就是一个赤裸裸的判断欧拉通路的问…

bootstrap guide

bootstrap1. bootstrap 简单介绍2. demo演示3. 关于bootstrap使用注意的点1. bootstrap 简单介绍 起源 来自Twitter,是目前最受欢迎的前端框架。基于HTML、CSS、Javascript。Bootstrap js组件依赖于jquery 3.X简洁灵活,使得Web开发更加快捷。官网 https…

六、Analysis of quicksort

1 引言 如题目所示,本节的精华在于用数学解决一个直觉上看似纷乱复杂的问题,里面有一些一般性的分析方法,如引入Indicator变量,从而把不确定问题引入到概率框架进行分析,一步一步把直觉上混乱的问题理清楚&#xff0c…

Javaweb maven项目tomcat报错: javax.naming.NamingException: 无法创建资源实例

报错地址 2. 原因分析 1. Resource注解无效,注入失败,你得从容器中把bookInfoServie取去来,用getBean的方式创建BookInfoServiceImpl对象 2.删掉Resource注解,重新部署搞定。3.不要在意写了个Contorller, 初学spring,…

如何给APK文件签名

转载地址:http://www.apkbus.com/forum.php?modviewthread&tid1264211.签名的意义   为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一…

七、基于比较的排序算法总结

1 问题 至此,总结一下已经研究过的排序算法: insertion sort,Θ(n2)\Theta(n^2)Θ(n2) merge sort, Θ(nlogn)\Theta(nlogn)Θ(nlogn) quicksort, Θ(nlogn)\Theta(nlogn)Θ(nlogn) heapsort,Θ(nlogn)\Theta(nlogn)Θ(nlogn) 从上面这个现象…

转账为demo,spring事务

spring 事务使用1. 业务代码2. xml配置3. 注解配置1. 业务代码 数据表结构 dao package com.lovely.dao.impl;import com.lovely.dao.AccountDao; import org.springframework.jdbc.core.JdbcTemplate;/*** author echo lovely* date 2020/8/9 11:01*/ public class AccountD…

八、计数排序及其应用分析

1 本节思路 之前的算法的最基本的思想是比较元素大小,所以算法复杂度最好是Θ(nlogn)\Theta(nlogn)Θ(nlogn),本节不再基于元素比较,而是基于计数的Counting sort,然后应用在Radix sort上。 2 Counting sort 2.1 算法思想 Cou…

Google开发者模式调试css样式的方法

界面如下,你需要调试css样式… 看下图,高仿某云播放界面部分 需求 1.h5开发手机端界面,禁用缩放 2.如何精准的定位像上图一样,或者更好 3.使用Google调试器,调试css样式如何调样式 选择对应的样式 确定多个元素…

OD汇编需要标签

如何解决,看那红体字。。。 push 0046ad70 标签就是地址的引用 zai破解的道路上面面前行 技术参考:http://zhidao.baidu.com/link?url8JP8KFxTinclhl6MwpaZw5buhtv1p4zgpjy8rKkBPvD4YqCq2uudXQZrhuBLPGZm5ahe3d7YsLb3MeAFDXfsua转载于:https://www.cnbl…