欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP Push 服务器端代码

程序员文章站 2022-06-12 18:14:07
...
push服务器端
function server() {
    for ($i = 0, $timeout = 10; $i < $timeout; $i++) {
        if (connection_status() != 0) {
            exit();
        }
        $where = array();
        $user_id = $user_id = get_user_id();
        session_write_close();
        $where['user_id'] = $user_id;
        $where['time'] = array('elt', time() - 1);
        $model = M("Push");
        $data = $model -> where($where) -> find();
        $where['id'] = $data['id'];
        //dump($model);
        if ($data) {
            sleep(1);
            $model -> where("id=" . $data['id']) -> delete();
            $this -> ajaxReturn($data['data'], $data['info'], $data['status']);
        } else {
            sleep(2);
        }
    }
    $this -> ajaxReturn(null, "no-data", 0);
}

push客户端

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="keywords" content="keywords" />
    <meta name="description" content="description" />
    <script type="text/javascript" src="__PUBLIC__/js/jquery.js"></script>
    <script type="text/javascript">
            var flag = true;
            var runing=false;
            push_start();
            function sendPush(url,vars,callback){
                return $.ajax({
                    type : "POST",
                    url : url,
                    data : vars + "&ajax=1",
                    dataType : "json",
                    success : callback
                });
            }
            function hide_msg($obj){
                runing=true;
                setTimeout(function(){
                    $($obj).find("h4:first").remove();
                    if($($obj).find("h4:first").length){
                        hide_msg($obj);
                    }else{
                        runing=false;
                    }
                },3000)
            }
            function show_msg(info){
                if(info!="no-data"){
                    html="<h4><button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button><span>"+info+"</span></h4>"
                    $obj=$(".msg",parent.document);
                    $obj.prepend(html);
                    if (runing==false){
                        hide_msg($obj); 
                    }                   
                }   
            }
            function push_start(){                              
                sendPush("{:U(push/server)}","id=1", function(data){
                    show_msg(data.info);
                    if (flag){
                        push_start();
                    }
                });
            }
 
            function push_stop() {
                flag = false;
            }
 
        </script>
</head>
<body>
</body>
</html>