08 comet反向ajax
一:HTTP协议与技久链接+分块传输---->反向ajax
反向ajax又叫comet, server push,服务器推技术.
应用范围: 网页聊天服务器,, 新浪微博在线聊天,google mail 网页聊天,都有用到.
原理: 一般而言, HTTP协议的特点, 连接<->断开.
具体什么时间断开?
服务器响应content-length,收到到指定length长度的内容时,也就断开了.
在http1.1协议中, 允许你不写content-length ,比如要发送的内容长度确实不知道时.
这时,需要一个特殊的content-type:chunked
分场传输的原理是这样的:
123H \r\n
123H个长度的内容传输给给客户端...\r\n
.......
41H\r\n
浏览器继续接收41H长度的内容.\r\n
0\r\n (服务器说内容发完了)
与mysql结合
<?php
set_time_limit(0);
ob_start();
$pad = str_repeat(' ',4000);
echo $pad,'<br />';
ob_flush();
flush(); // 把产生的内容 立即送给浏览器而不要等脚本结束再一起送.
$conn = mysql_connect('localhost','root','111111');
mysql_query('use test');
while(1) {
$sql = 'select * from msg where flag = 0';
$rs = mysql_query($sql,$conn);
$row = mysql_fetch_assoc($rs);
if(!empty($row)) {
echo $pad,'<br />';
echo $row['content'],'<br />';
mysql_query('update msg set flag=1');
}
ob_flush();
flush(); // 把产生的内容 立即送给浏览器而不要等脚本结束再一起送.
sleep(1);
}