「プッシュ通知」PHP言語でPUH通知を実装するサーバー側とクライアントのサンプルプログラム

1.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);
}

2.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();
//push通知を送信
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);
}
}
}
//push通知を開始
function push_start(){
sendPush(“{:U(push/server)}","id=1″, function(data){
show_msg(data.info);
if (flag){
push_start();
}
});
}
//push通知を停止
function push_stop() {
flag = false;
}

</script>
</head>
<body>
</body>
</html>

Development

Posted by arkgame