首页 > 代码库 > http协议与分块传输,持久连接及反向ajax

http协议与分块传输,持久连接及反向ajax

web QQ都用过吧,这涉及到哪些技术,有一个就是反向ajax。

反向ajax又叫comet,server push,服务器推技术.

应用范围: 网页聊天服务器,, 新浪微博在线聊天,google mail 网页聊天,都有用到.

原理: 一般而言, HTTP协议的特点, 连接<->断开.

具体什么时间断开?

服务器响应content-length,收到到指定length长度的内容时,也就断开了.

在http1.1协议中, 允许你不写content-length,比如要发送的内容长度确实不知道时.

这时,需要一个特殊的content-type:chunked   



<?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);
}


/*
读取数据库中内容
这样就能达到 , 即时通信.
服务器端---不间断--推送信息-->到客户端
*/









http协议与分块传输,持久连接及反向ajax