返回信息流服务器主动推送技术除了websocket还有别的吗?比如支付宝支付时,手机扫完码,前端能立刻知道,用的是什么技术啊?
这是一条镜像帖。来源:北邮人论坛 / www-technology / #30281同步于 2015/5/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
请问:服务器主动推送技术
lichliu
2015/5/25镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
好像有这几种: 1. Long-polling 2. Server-Sent Events 3.WebSockets
浏览器兼容性
o Long-polling支持大多数当前的浏览器
o Server-Sent Events支持Chrome9+、Firefox6+、Opera11+、Safari5+
o Chrome14、Firefox7支持最新的hybi-10协议,Firefox6支持hybi-07.
服务器负载
o Long-polling占一小部分CPU资源,但是创建空的进程将浪费系统的内存
o Server-Sent Events工作的方式有很多,除非Server-Sent Events不必在每一次响应发出后都关闭连接。
o WebSockets,服务器只需要一个进程处理所有的请求,没有循环,不必为每个客户端都分配cpu和内存。
客户端负载
o Long-polling取决于实现方式,但终究是一个异步的方式
o Server-Sent Events采用浏览器的内置的实现方式,只花费很少的一部分资源。
o WebSockets跟Server-Sent Events一样,采用浏览器的内置的实现方式,只花费很少的一部分资源。
时间线
o Long-polling接近实时,但是发送新的请求和发送相应会有一定的时延。
o Server-Sent Events默认延时3秒,但是可以调整。
o WebSockets真正的实时
实现方式复杂度
o Long-polling实现起来非常简单
o Server-Sent Events甚至比Long-polling更简单
o 需要一个WebSockets服务器处理事件,并开放一个端口
【 在 jkfbrant 的大作中提到: 】
: 这不就是websocket吗,楼主问除了websocket
socket.io 可不仅仅是websocket ~ 他封装了多种方式
当你浏览器不兼容websocket时候,可以退化到其他 比如轮询等
在很长的时间段内只是偶尔需要用到推送技术,轮询感觉太浪费资源了
【 在 strugglingL 的大作中提到: 】
:
: socket.io 可不仅仅是websocket ~ 他封装了多种方式
: 当你浏览器不兼容websocket时候,可以退化到其他 比如轮询等
回答的这么详细,非常感谢。之前的需求一直是大量数据实时主动推送,所以用了websocket,现在的需求是只是偶尔会推送数据,感觉用长连接会浪费资源,想学学其他技术。顺便问一下,现在websocket在一些正规网站上用的多吗?
【 在 konjunyiha 的大作中提到: 】
: 好像有这几种: 1. Long-polling 2. Server-Sent Events 3.WebSockets
: 浏览器兼容性
: o Long-polling支持大多数当前的浏览器
: ...................
aja轮训,最简单也是性能最差的;长轮询;HTML5提供的websocket和服务器推技术(注意,html5包含两种推送技术,一个是websocket,另一个就叫做服务器推技术);comet等