码迷,mamicode.com
首页 > Web开发 > 详细

php客服聊天回话系统,长连接加ajax轮询实现

时间:2015-04-08 10:30:34      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

客服回话系统有三种实现方法:
1、用ajax每隔几秒钟请求一次服务器,看看有没得消息,有消失就返回来显示给用户。
2、长连接:建立一次连接之后就不断开,php set_time_out(0) 用ob_flush flush等函数强制推送给客户端
3、长连接加轮询,建立一个长连接,没有数据就一直连着,当有数据的时候,就返回数据,并结束当前的连接,客户端接受数据并显示,然后再连接服务器端,又开始长连接,就这样周而复始,这就是长轮询。

今天,我们就用第三种方法来实现php客服聊天系统。
只写我的思路:
-----------------------------------

 

客户php:
while(true){
   //一个死循环
   //查看是否有客服发送过来的数据
   //1、如果没有,那么继续while
   //2、如果有那返回数据,并结束程序
   if(有){
       echo 数据;
       exit;
    }
    sleep(5);
}
-----------------------------------
客户: 客户端
window.onload = function(){
   var setting = {
       type:"post",
       url:‘kehu.php‘,
       dataType:‘json‘,
       success:function(){
           //把内容显示给用户
           // 休眠3秒钟,再开始连接
           setTimeout(function(){$.ajax(setting);},3000);
       }
   };
   $.ajax(setting);
}


2、长连接

<?php
ob_start();

echo str_repeat(‘ ‘,4000);
ob_flush();
flush();

$i = 0;
while(true){
   echo $i,‘<br>‘;
   ob_flush();
   flush();
   sleep(3);
}

 

php客服聊天回话系统,长连接加ajax轮询实现

标签:

原文地址:http://www.cnblogs.com/godrain/p/4401587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!