现在我们就要通过这种方法来实现实时通信,先说一下原理:

客户端发起一个ajax长链接查询,然后服务端就开始执行代码,主要是检查某个文件是否被更新,如果没有,睡一会(sleep),醒来接着检查
如果客户端又发起了一个正常请求),服务端收到后,处理请求,处理完毕后,这时醒来长链接查询继续查找。

//防止请求超时
set_time_limit(0);
//打开输出缓冲控制
ob_start();
$pad = str_repeat('-', 100);
echo $pad . "<br/>";
//输出缓冲区中的内容
ob_flush();
// 刷新输出缓冲
flush();
$connect = mysqli_connect('localhost', 'root', '');
if (!$connect) {
die('连接失败');
} $i = 1;
while ($i++) {
mysqli_query($connect, 'use test');
/// 注意关键字
$query = mysqli_query($connect, 'select * from test where `read` = 0 limit 1');
$res = mysqli_fetch_assoc($query);
//更新
$update =mysqli_query($connect, "update test set `read` = 1 where id={$res['id']} ");
   if(!empty($res)){
echo 'update result:'.$update.' '.$res['user'] . "<br/>";
echo $pad . "<br/>";
}
flush();
ob_flush();
//延缓一秒执行
sleep(1);
}

方向ajax(http long request实现实时通信)的更多相关文章

  1. SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

    情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码) 情况二: Controller 中 request.getParameter()获取到的是乱 ...

  2. ajax post请求request.getParameter("")取值为null

    今天在写提交一个json数据到后台,然后后台返回一个json数据类型.但是发现后台通过request.getParamter("")取到的值为null. 于是写一个简单的ajax ...

  3. dogo 官方翻译 Ajax with dojo/request

    require(["dojo/request"], function(request){ request("helloworld.txt").then( fun ...

  4. 多选文件批量上传前端(ajax*formdata)+后台(Request.Files[i])---input+ajax原生上传

    1.配置Web.config;设定上传文件大小 <system.web> <!--上传1000M限制(https://www.cnblogs.com/Joans/p/4315411. ...

  5. 前端之ajax

    前端之ajax 本节内容 ajax介绍 原生js实现ajax jquery实现ajax json 跨域请求 1. ajax介绍 AJAX(Asynchronous Javascript And XML ...

  6. javascript的ajax

    AJAX 一 AJAX预备知识:json进阶 1.1 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javas ...

  7. jQuery Ajax 实例 ($.ajax、$.post、$.get)

    jQuery Ajax 实例 ($.ajax.$.post.$.get) 转 Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. ...

  8. django(3) 一对多跨表查询、ajax、多对多

    1.一对多跨表查询获取数据的三种形式:对象.字典.元组 例:有host与business两张表,host与business的id字段关联,business在host表中的对象名是b,  通过查询hos ...

  9. 【JavaScript】--ajax

    1 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传 ...

随机推荐

  1. test20181219 连续段的期望

    题意 连续段的期望 [问题描述] 小N最近学习了位运算,她发现2个数xor之后数的大小可能变大也可能变小,and之后都不会变大,or之后不会变小.于是她想算出以下的期望值:现在有 N个数排成一排,如果 ...

  2. Django工程目录结构优化

    1.我看到这篇文章,写的不错,在此复制了一份,防止以后找不到! 感谢作者的翻译--->原文的链接:http://www.loonapp.com/blog/11/ 如果原文存在,请打开原文件阅读 ...

  3. Linux盘符漂移问题

    Linux管理多块磁盘时(以sata盘为例),会按磁盘加载的顺序依次给磁盘命名为/dev/sda, /dev/sdb... 这种命名规则就会导致,一块磁盘在发生热插拔或系统重启后,盘符可能发生变化,会 ...

  4. 安装jenkins 的时候 记录默认密码文件为空的情况

    1.把文件的权限改成 chmod 777 .jenkins/secrets/initialAdminPassword  然后再使用编辑器打开,密码就出来的 密码文件的地址 /var/root/.hud ...

  5. 2017中国大学生程序设计竞赛 - 女生专场(Graph Theory)

    Graph Theory Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)To ...

  6. 在richtextbox中获取最真实的字符串像素大小

    设计器: partial class Form1 { /// <summary> /// 必需的设计器变量. /// </summary> private System.Com ...

  7. XModem协议

    XModem协议介绍: XModem是一种在串口通信中广泛使用的异步文件传输协议,分为XModem和1k-XModem协议两种,前者使用128字节的数据块,后者使用1024字节即1k字节的数据块. 一 ...

  8. 编译openwrt失败 “Please install theopenssl library”

    make menuconfig出现了错误 Build dependency: Please install theopenssl library(with development headers) P ...

  9. jmeter json截取

    前些日子压测我们系统,发现我们开发把cookie值当成一个参数返回到了json中,这样就要从json中获取这个cookie后配置到cookie 管理器中 Jmeter中本身是不支持直接处理json串的 ...

  10. python' s fifth day for me dict

    字典 dict : key--vlaue 储存大量的数据,而且是关系型数据,查询速度快(二分查询) 数据类型分类: 可变数据类型(不可哈希):list(列表) , dict(字典), set(集合) ...