web实时推送

实现Web推送以webSocket和SSE为例

  1. 使用webSocket
介绍: webSocket提供了一个全双工连接。一个带特殊HTTP头的请求由某个客户端发送到服务器。HTTP连接可能"升级"到一个全双工的tcp/ip的WebSocket连接,如果服务器支持webSocket,它就可能选择升级webSocket。而一旦建立webSocket连接,它就可用于客户端和服务器之间的双向通信。
    服务器和客户端就可以随意向对方发送数据。此时,这个新的webSocket连接上的交互也就不再基于HTTP协议了。
========================================================================================================================================
使用webSocket的优点是符合HTML5标准,大多数浏览器支持,全双工,性能强;但实现较复杂,需要对ws协议专门处理。
webSocket是一种较复杂的服务端技术实现,但也是真正的双向传输技术。
  1. 使用SSE(server-send-event)
webSocket能完成的,SSE也可以实现。只是某些任务下,它们各自的性能不同。
SSE相对于ws优势之一就是便利:不需要任何新组件,同时与后端配置实现也更简洁。
而且SSE脚本调试也非常容易,SSE是文本协议,webSocket是二进制协议。所以当需要从服务端到客户端传输大量的二进制数据,最好使用webSocket。
  使用SSE一般通过一个独立的ajax请求从客户端向服务器发送数据。

两种方式都用tcp/ip套接字,都是轻量级协议。延迟,带宽和服务器负载都没有区别。
3. 两者差异

webSocket是全双工通道,可以双向通信,功能更强;SSE是单向通道,只能服务器向浏览器发送。
webSocket是一个新的协议,需要服务器支持;SSE则是部署HTTP协议之上,所有的服务器软件都支持。
SSE默认支持断线重连,webSocket则需要额外部署。
SSE支持自定义发送的数据类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值