从web实时通信讲H5 WebSocket

传统的B/S通信通常我们打开一个浏览器访问网页时,都会向页面所在的服务器发送一个HTTP请求,然后web服务器确认请求并向浏览器做出响应。简单的说,就是一个请求对应的一个响应。然而这种方法对许多的应用场景都会使服务器的HTTP请求变得臃肿,甚至崩溃。比如:对于股价、新闻每日推送、好友聊天信息收发等情况,如果每次都是客户端发送HTTP请求给服务器来获取相应数据,那么用户就需要每次都对页面进行刷新从而来
摘要由CSDN通过智能技术生成
传统的B/S通信

通常我们打开一个浏览器访问网页时,都会向页面所在的服务器发送一个HTTP请求,然后web服务器确认请求并向浏览器做出响应。简单的说,就是一个请求对应的一个响应。然而这种方法对许多的应用场景都会使服务器的HTTP请求变得臃肿,甚至崩溃。比如:对于股价、新闻每日推送、好友聊天信息收发等情况,如果每次都是客户端发送HTTP请求给服务器来获取相应数据,那么用户就需要每次都对页面进行刷新从而来获取最新的消息。相信这样的网页用户也不会喜欢

前期实时通信解决方式

1>

HTTP轮询

   1.定义:轮询是一种定时性的同步调用,客户端想服务器发送请求查看是否有可用的新数据。请求以固定的时间间隔发出,不管是否有信息,客户端都会得到响应数据:如果有可用信息,服务器就会将它们返回给客户端;如果没有可用信息,服务器就会返回一个拒绝响应,客户端接受到这种响应时就可以关闭连接。轮询的本质上就是推迟完成HTTP响应,向客户端提交信息
   2.适用场景:在知道信息交互的时间间隔的情况下,使用它是一个好的办法,然而大多数的情况下,我们都不知道信息交付的时间间隔,我们不知道用户什么时候发数据,新闻什么时候更新等等..
   3.缺陷:使用HTTP轮询方式需要服务器有很快处理速度和资源,而且发送的http请求也很多

2>

长轮询

   1.定义:客户端向服务器端请求信息,并在设定的时间内打开一个连接。服务器如果没有信息推送,那么请求就会一直打开,知道服务器响应数据或者设定的时间用完为止。当请求关闭时,客户端又可以重新向服务器发送请求信息。长轮询是一种阻塞模型,类似于打电话,没有人接就不挂电话,知道拨打电话时长超过限制或者对方接了。长轮询也称为Comet或者反向AJAX,长轮询延长HTTP响应的完成时间,直到服务器响应数据或者设定时间用完,这种技术通常称为挂起GET或者搁置POST
   2.缺陷:当信息量很大时,长轮询的性能相较于传统的通信而言并没有明显的优势,因为客户端必须繁重得重连服务器来获取新信息。并且长轮询缺乏标准实现。而且长轮询需要有很高的并发能力即同时接待多个客户的能力

3>

流化技术

   1.定义:在流化技术中,客户端发送一个请求,服务器发送并维护一个持续更新和保持打开(可以指定时间段,也可以设置为无限)的开放响应,每当服务器有需要交付给客户端的信息时,它就更新响应
   2.缺陷:流化技术中的服务器从不发出完成HTTP响应的请求,从而使连接一直保持打开状
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值