1.轮询:
客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息,并关闭连接。
优点:后端程序编写比较容易
缺点:请求中大半是无用的,浪费带宽和服务器资源
实例:适用于小型应用
2.长轮询:
客户端向服务器发送Ajax请求,服务器接到请求后Hold住连接,直到有新消息才返回响应信息,并关闭连接;客户端处理完响应信息后再向服务器发送新的请求。
优点:在无消息的情况下不会频繁的请求,耗费的资源少
缺点:服务器Hold住连接会消耗资源,返回数据顺序无法保证,难于管理和维护
实例:WebQQ、Hi网页版、FaceBook IM等
3.长连接:
在页面中嵌入一个隐藏的jframe,将这个隐藏的iframe的src属性设置为对一个长连接的请求或者采用XRH请求,服务器端就能源源不断地往客户端输入数据。
优点:消息即时到达,不发无用的请求;管理起来也相对方便
缺点:服务器维护一个长连接会增加开销
实例:Gmail聊天