PHP反向Ajax在线客服系统实操与优化策略

0 下载量 43 浏览量 更新于2024-08-29 收藏 204KB PDF 举报
本文详细介绍了如何在PHP中利用反向Ajax技术实现一个在线客服系统。反向Ajax,也称为服务器推送或server push,是一种双向通信机制,常用于实时交互应用如在线客服、消息推送和即时通信,如新浪微博私信功能。 首先,作者提出了实现反向Ajax的三种思路: 1. 固定时间间隔创建连接:客户端每隔一定时间就向服务器发起请求,这种做法虽然简单,但会导致频繁创建和关闭连接,浪费服务器资源。 2. 长连接方式:客户端维持一个持续的连接,服务器可以随时推送数据,这样减少了连接的创建和销毁,效率较高。 3. 长连接+长轮询:结合长连接和长轮询的优势,服务器推送数据后,连接断开再重新连接,实现了较低的延迟和资源消耗。 在在线客服系统的具体实现中,作者采用了长连接和长轮询的混合策略。用户端使用长轮询的方式,通过PHP脚本如`comet()`来监听服务器更新,当接收到新消息时显示给客服。客服人员界面(16-kefu-admin.php)则采用长连接,使用隐藏的iframe标签和AJAX请求与服务器交互,处理用户的咨询和回复,并将信息存储在数据库中。 数据库设计包括几个字段,如`mid`为主键,用于标识消息;`pos`和`rec`分别表示发送者和接收者;`isread`标识是否已读;`content`存储咨询或回复内容。项目的数据库操作涉及插入和查询记录,确保数据的实时同步。 通过上述设计,用户在咨询过程中可以实时看到客服的回复,提高了用户体验和客服效率。整个系统利用了PHP的强大功能和反向Ajax技术,使得在线客服功能更加流畅且高效。
2014-08-19 上传
php开发客服系统。真正的实时聊天,使用持久连接+轮询+反向ajax实现 用户端(可直接给客户发送消息) 客服端(点击用户名.即可给该用户回复消息) 讲两种实现方式: 一:iframe + 服务器推技术comet(反向ajax,即服务器向浏览器推送数据) 二:ajax持久连接 + 长轮询 客服端采用第一种方式:iframe + 服务器推技术 思路: 1:新建comentbyiframe.php 该用文件使用while(true)一直连接到服务器不断开. 如果在while的过程中查到了新数据.使用ob_flush推给apache服务器.apache再用flush推给浏览器. 2:新建html页面,插入一个iframe. 该iframe的src为comentbyiframe.php。 并隐藏iframe。comentbyiframe.php获取的数据用js输出到父窗口中的某个函数.该函数把信息追加到指定的聊天窗口中 3:只要客户端收到用户发来的数据. 就显示为"xx对你说..". 客服端只要点击用户名。即可给该用户发送数据. 用户端采用第二种方式:ajax持久连接 + 长轮询 ajax持久连接:文档加载完毕后(或其他时机),使用ajax请求一个php文件 被请求的php文件通过while(true)循环.迟迟不给apache返回数据的目的. 轮询指:请求服务器的时候.如果服务器没有数据.则一直等.当服务器有数据后.就返回给客户端. 这样请求、响应过后就完成了一次HTTP请求. 还没完.客户端收到数据后又到服务器要数据.这就是轮询 就好像一个乞丐一样. 不给他钱,他就一直跟着你要. 你给他钱以后.他还不满足,又跑来找你要. 实现思路: 进入用户端后.如果没有用户名.使用setcookie设置一个用户名.然后通过ajax持久连接. 不停向服务器索要数据(即客服发送给该用户的记录). 详情:http://www.phpyan.com/home/article/350.html