php 服务器推送有关问题

WBOY
풀어 주다: 2016-06-13 13:47:37
원래의
939명이 탐색했습니다.

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>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿