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\">×</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>