thinkphp5实现在线聊天系统(一),有源码下载!
2017-05-16 07:34
676 查看
在线聊天系统,也叫即时聊天系统。是一种基于web端可以在线交互信息,便捷,实用的聊天系统。常见的在线聊天系统有webqq,ChatRoom,Facebook,Hi网页版等。这些系统的核心思想都是通过长连接或者长轮询来实现。开始之前先加固下知识点,什么是长链接长轮询,短连接。
轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。
优点:后端程序编写比较容易。
缺点:请求中有大半是无用,浪费带宽和服务器资源。当信息不更新的时候,还在不停的请求,除非把浏览器关闭后,才能结束这种无意义的请求。
实例:适于小型应用。
长轮询:客户端向服务器发送Ajax请求,服务器接到请求后通过while,递归等无限循环的手段hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。
优点:在无消息的情况下不会频繁的请求,耗费资源小。
缺点:服务器hold连接会消耗资源,返回数据顺序可能会出现。
实例:WebQQ、Hi网页版、Facebook IM。
长连接:在页面里嵌入一个隐蔵iframe,将这个隐蔵iframe的src属性设为对一个长连接的请求或是采用xhr请求(ajax请求),服务器端就能源源不断地往客户端输入数据。
优点:消息即时到达,不发无用请求;管理起来也相对方便。
缺点:服务器维护一个长连接会增加开销。
实例:Gmail聊天
Flash Socket:在页面中内嵌入一个使用了Socket类的 Flash 程序JavaScript通过调用此Flash程序提供的Socket接口与服务器端的Socket接口进行通信,JavaScript在收到服务器端传送的信息后控制页面的显示。
优点:实现真正的即时通信,而不是伪即时。
缺点:客户端必须安装Flash插件;非HTTP协议,无法自动穿越防火墙。
实例:网络互动游戏
下一章继续。。。
轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。
优点:后端程序编写比较容易。
缺点:请求中有大半是无用,浪费带宽和服务器资源。当信息不更新的时候,还在不停的请求,除非把浏览器关闭后,才能结束这种无意义的请求。
实例:适于小型应用。
长轮询:客户端向服务器发送Ajax请求,服务器接到请求后通过while,递归等无限循环的手段hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。
优点:在无消息的情况下不会频繁的请求,耗费资源小。
缺点:服务器hold连接会消耗资源,返回数据顺序可能会出现。
实例:WebQQ、Hi网页版、Facebook IM。
长连接:在页面里嵌入一个隐蔵iframe,将这个隐蔵iframe的src属性设为对一个长连接的请求或是采用xhr请求(ajax请求),服务器端就能源源不断地往客户端输入数据。
优点:消息即时到达,不发无用请求;管理起来也相对方便。
缺点:服务器维护一个长连接会增加开销。
实例:Gmail聊天
Flash Socket:在页面中内嵌入一个使用了Socket类的 Flash 程序JavaScript通过调用此Flash程序提供的Socket接口与服务器端的Socket接口进行通信,JavaScript在收到服务器端传送的信息后控制页面的显示。
优点:实现真正的即时通信,而不是伪即时。
缺点:客户端必须安装Flash插件;非HTTP协议,无法自动穿越防火墙。
实例:网络互动游戏
下一章继续。。。
相关文章推荐
- Ext 在线实时聊天系统的开发,有源码包,实现了实时更新在线用户列表和群聊
- Jsp struts mysql实现的在线考试系统项目源码
- JS实现的在线调色板实例(附demo源码下载)
- JS实现的在线调色板实例(附demo源码下载)
- jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
- 【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
- 即时通信系统中如何实现:聊天消息加密,让通信更安全? 【低调赠送:QQ高仿版GG 4.5 最新源码】
- 基于webSocket实现的一对一在线聊天系统
- 刚刚更新:在线聊天系统设计(原理+思路+源码+效果图)
- EXT(dwr) Web在线聊天系统群聊和私聊的实现
- Struts2实现的吊炸天留言板系统(包含完整源+mysql数据库+bootstraps3)源码以及课程报告下载地址!
- 【转】【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
- WoLive-在线客服系统源码,网页聊天源码开源版
- 支持群聊+语音聊天+高仿QQ源码下载 (android前端+JAVA后台+spark<windows版聊天>)方便集成到自己系统
- Jsp struts mysql实现的在线考试系统项目源码
- 免费网络远程视频会议系统,免费美女多人视频聊天(附源码下载)(Flex和Fms3开发)
- servlet监听实现统计在线人数功能 附源码下载
- jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
- php实现在线考试系统【附源码】
- 学呼—在线管理系统实现及源码struts2+Hibernatex项目