Home > Backend Development > PHP Tutorial > php 服务器推送有关问题

php 服务器推送有关问题

WBOY
Release: 2016-06-13 13:47:37
Original
958 people have browsed it

php 服务器推送问题。
现在准备做个聊天的功能,在网上看了下,说用 推技术啊。
但是不懂。用ajax 轮询的话 效率很低啊。。。

------解决方案--------------------

探讨
额。。。我始终觉得 ajax 长轮询的话 服务器压力很大啊。
如果用户多了就 。。

------解决方案--------------------
人少的时候,ajax轮循明显浪费资源,没新的聊天信息却在那边一直查啊查的。
人多的时候,comet建了比较多的长连接,估计有点难承受,主要是服务器那边的优化了。



这边是简单的例子……只是讲讲原理……
前端是普通的ajax,后端是死循环

HTML code




<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


<div id="test"></div>
<script type="text/javascript">
function test(){
    var aj;
    try{aj=new ActiveXObject("Msxml2.XMLHTTP");}
    catch(e){
        try{aj=new ActiveXObject("Microsoft.XMLHTTP");}
        catch(E){aj=false;}
    }
    var time = Math.round(new Date().getTime() / 1000);
    if(!aj&&typeof XMLHttpRequest!=undefined)aj=new XMLHttpRequest();
    aj.open("GET","b.php?time="+time,true);
    aj.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=utf-8');
    aj.onreadystatechange=function(){
        if(aj.readyState==4&&aj.status==200){
            document.getElementById("test").innerHTML += aj.responseText;
            test(); // 收到结果后重新建立连接
        }
    }
    aj.send(null);
}
test();
</script>

 <div class="clear">
                 
              
              
        
            </div>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template