前后端消息推送方案汇总 WEB即时通讯/消息推送

【手动迁移自前博客】2019-04-22 21:19浏览 204
https://www.iteye.com/blog/zeraw-2439529

a

SSE(Server-Sent Events)技术是基于单工通信模式,只是单纯的客户端向服务端发送请求,服务端不会主动发送给客户端。服务端采取的策略是抓住这个请求不放,等数据更新的时候才返回给客户端,当客户端接收到消息后,再向服务端发送请求,周而复始。

WebSocket 技术是双工模式

WEB即时通讯/消息推送:11年之前4种。11年后有WebSocket。

模拟推送:1. 轮询(Polling)

Comet:

2.长轮询(Long-Polling) ,超时时间:微博2.8分分钟,微信网页版25秒、用两个请求来完成长轮询,一个用于25秒超时获取是否有新消息,当有新消息时会用另一个AJAX请求来获取具体数据;

  1. 基于iframe的方式,如Google Talk。缺点:IE、Morzilla Firefox 下端进度栏显示加载中。

局限性方式 4. 插件提供的Socket方式。缺点:浏览器端需要装相应的插件;

  1. WebSocket ,WebSocket API也被W3C定为标准。简单好用。

实现WebSocket 可用第三方框架:Socket.IO以及其Server端的Java实现netty-socketio 。(也支持长轮训)

Socket.IO中的一些重要概念。

1、Server:代表一个服务端服务器;

2、Namespace:一个Server中可以包含多个Namespace。见名知意,Namespace代表一个个独立的空间。

3、Socket/Client:基本上这两个词是一个概念。

1.在JavaScript客户端叫Socket,在创建时必须确定加入哪个Namespace,使用Socket可以让你和服务器通信。注意这个和伯克利Socket是不同的,只是开发者借用了一样的名字、功能相似。

2.在Java服务端用Client来表示连接上服务器的链接,它就代表了JavaScript连接时创建的那个Socket。

4、room:在服务端,一个Namespace中你可以创建任意个房间,房间就是给Client进行分组,以进行组范围的通信。Client可以选择加入某个房间,也可以不加入。

其他:

Connection:keep-alive 表示持久连接,做的是连接复用的工作,避免资源浪费,并不是解决全双工通讯、推送的。

z

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值