HTTP是怎样实时互通消息的?

时间 : 16-10-21 栏目 : Net开发 作者 : 冰镇宝贝321 评论 : 0 点击 : 2,071 次

案例描述


还在为做个网页聊天工具发愁么?还在使用http轮询来实现长连接么?是否好奇日志如何实时推送?


 案例详解


引言:

“我们在网页里面嵌个即时聊天工具吧,让用户实时聊天”“但是怎么做呢,http协议服务器没办法推送数据”“那我们通过轮询方式,每隔1s请求一次”


“我们要记录日志,但是日志是服务器运行生成推过来的”“不说了,轮询吧”

辣么,看完这篇文章,你就可以有新的思路


一、网站即时消息如何实现消息推送


网站即时消息通常有三种方式实现推送通道:


1)WebSocket

2)FlashSocket

3)http轮询

4)http长轮询


其中1)和2)是用Tcp长连接实现的,其消息的实时性可以通过tcp保证。


方案3)这是最常用的方法,就是前台每隔一段时间请求下服务器,刷新数据。


方案4)客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。 


二、三种方式的优缺点


轮询

优点:后端程序编写比较容易。 

缺点:请求中有大半是无用,浪费带宽和服务器资源。 

实例:适于小型应用。


长轮询

优点:在无消息的情况下不会频繁的请求,耗费资源小。 

缺点:服务器hold连接会消耗资源,返回数据顺序无保证,难于管理维护。 

实例:WebQQ


Flash Socket

优点:实现真正的即时通信,而不是伪即时。 

缺点:客户端必须安装Flash插件;非HTTP协议,无法自动穿越防火墙。 

实例:网络互动游戏


Web Socket

优点:真正的即时通信,服务器推送数据。 

缺点:非HTTP协议,无法自动穿越防火墙。仅支持Chrome 4.0,Firefox 4.0,Opera 11,Safari 5.0.2,iOS 4.2,其他听天由命

实例:天梯构建日志


看完这篇,是不是对这有新的了解,具体实现就不细写了,网上教程很多很全。



本文标签

除非注明,文章均为( 冰镇宝贝321 )原创,转载请保留链接: https://bkqv5.com/archives/253.html

HTTP是怎样实时互通消息的?:等您坐沙发呢!

发表评论




0