web实时通讯技术

一、web实时通讯技术的理解

服务器端可以即时地将数据的更新或变化反应到客户端

二、实现即时通讯的主要方式有:

轮询

长轮询comet

长连接SSE

webSocket

三、轮询

每隔一段时间浏览器给服务器端发送http请求,服务器端不在收到请求后,不论是否有数据更新,都直接进行响应。

优点:简单易理解,无技术难点。

缺点:不断的建立http请求,严重浪费了服务器和客户端的资源,使服务器端压力变大。

四、长轮询comet

当服务端收到客户端发来的请求后,服务器不会直接进行响应,而是将这个请求挂起,然后判断服务器数据是否有更新,如果有更新进行响应,如果一直没有数据则到大一定的时间限制(服务端设置)才返回。客户端在js响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。

优点:明显减少了很多不必要的请求次数,相比轮询节约了资源。

缺点:连接挂起也会导致资源的浪费。

轮询与长轮询都是基于http的,两者本身存在缺陷:轮询需要更快的处理速度;长轮询更要求处理并发的能力;两者都是“被动服务器”的体现;服务器端不会主动推送信息,而是客户端发送请求后进行响应。而理想的模型是:在服务器端数据有了变化后,可以主动推送给客户端。

五、长连接(SSE)

SSE是html5新增的功能,全称为Server-Sent Events,它可以允许服务器推送数据到客户端,SSE本质上就是与之前的长轮询、轮询不同,虽然都是基于http协议,但SSE最大的特点就是不需要客户端发送请求,可以实现只要服务器端数据有更新,就可以马上发送到服务端。

优点:他不需要建立或保持大量的客户端发送服务器端的请求,节约了很多资源,提升应用性能。

六、webSocket

webSocket是html5定义的一个新协议,该协议可以实现服务器与客户端之前全双工通信。连接一旦建立,客户端和服务器端就处于平等地位,可以互相发送数据,不存在请求和响应的区别。

优点:实现了双向通信

缺点:服务器端的逻辑非巡航复杂。

七、四种web即时通信技术比较

从兼容性角度考虑,短轮询>长轮询大>长连接>websocket;

从性能方面考虑:websocket>长连接>长轮询>短轮询。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值