消息推送、在线聊天系统实现思路
2019-06-04 16:52
525 查看
实现思路:
a. 轮询
特点:每隔一段时间不断向后端发送ajax请求
缺点:消耗大 有延迟 响应的结果没有顺序(因为是异步请求,当发送的请求没有返回结果的时候,后面的请求又被发送。而此时如果后面的请求比前面的请 求要先返回结果,那么当前面的请求返回结果数据时已经是过时无效的数据了)。
实例:小型项目会用到
b. 长轮询
定义:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。
优点:在无消息的情况下不会频繁的请求,耗费资源小。
缺点:服务器hold连接会消耗资源,返回数据顺序无保证,难于管理维护。
实现:
利用queue对象实现请求夯住
每个请求进来都要生成一个q对象
如果有人投票 给所有的q对象put数据
拿数据请求从自己的q对象get数据
实例:WebQQ、Hi网页版、Facebook IM
c. Web Socket
定义:WebSocket 是 HTML5 提供的一种浏览器与服务器间进行全双工通讯的协议。依靠这种协议可以实现客户端和服务器端 ,一次握手,双向实时通信。
优点:请求响应快,不浪费资源。
缺点:主流浏览器支持的Web Socket版本不一致;服务端没有标准的API。
实例:股票交易行情分析、聊天室、在线游戏等
相关文章推荐
- 详解如何实现在线聊天系统中的实时消息获取
- 消息推送系统设计思路
- android客户端 j2ee服务器端架构的聊天系统实现思路
- SpringBoot+WebSocket实现消息推送及简单的聊天功能
- 简单在线聊天系统的实现(初步)
- android学习之六·是用系统nofity实现系统消息推送
- DWR实现消息推送(基于单对单聊天)-第三节
- Spring4.3+Webscket 实现聊天、消息推送详解之具体实现(三)
- SignalR实现消息推送,包括私聊、群聊、在线所有人接收消息(源码)
- SignalR实现消息推送,包括私聊、群聊、在线所有人接收消息(源码)
- 关于MQTT协议实现消息推送系统
- EXT(dwr) Web在线聊天系统群聊和私聊的实现
- 刚刚更新:在线聊天系统设计(原理+思路+源码+效果图)
- 现代IM系统中消息推送和存储架构的实现
- 现代IM系统中消息推送和存储架构的实现
- 个人开发者app消息推送简单实现思路
- Java Socket聊天室编程(一)之利用socket实现聊天之消息推送
- 现代IM系统中消息推送和存储架构的实现
- Spring4.3+Webscket 实现聊天、消息推送详解原创之websocket与web服务器之间的那些纠结的事儿(二)
- Web 实现在线聊天的系统 强烈推荐