时间 : 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