1. 引入 icomet.js
2. 引入相关的详细配置
var app_host = '你的服务器域名或ip',
icomet_host = '你所配置icomet服务器所在的域名或ip';
var comet = new iComet({
channel: 'abc', //推送消息的频道 作为自己的唯一标识 即 cname 的别名
sign_url: 'http://'+app_host+'你的接口注册地址', //注册 服务器 否则不会对该客户端 推送消息
sub_url: 'http://'+icomet_host+':8100/sub', //请求 icomet服务器 与程序无关
pub_url: 'http://'+app_host+'你的接口发送地址', //推送消息 给服务器
sub_timeout: 60*1000, //请求 注册 响应超时 重连间隔时间
callback: function(msg){//回调函数
//主动接收回调消息
}
});
//推送消息
comet.pub('你要发送的消息内容',function(msg){
console.log(msg);
});
//停止所有服务器推送或接收请求
comet.stop();
3. 编写服务端的 注册接口 和 发送消息接口
(1) 注册接口
//这里用 cookie 或者 session 或者 memcache 存储当前用户cname
$cb = urlencode($_GET['cb']);
$cname = urlencode($_GET['cname']);
$_COOKIE['cname'] = $cname
$url = "http://127.0.0.1:8000/sign?cname=$cname&cb=$cb";
$resp = http_get($url);
echo $resp;
function http_get($url){
$ch = curl_init($url) ;
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
$result = curl_exec($ch) ;
curl_close($ch) ;
return $result;
}
(2) 消息推送接口
if(get_magic_quotes_gpc()){
$_GET['content'] = stripslashes($_GET['content']);
}
$cname = trim($_GET['cname']);
$content = trim($_GET['content']);
if($_COOKIE['cname'] == $cname){
//检验当前登陆是否是本人
}
echo icomet_push($cname, $content);
function icomet_push($cname, $content){
$cname = urlencode($cname);
$content = urlencode($content);
$url = "http://127.0.0.1:8000/push?cname=$cname&content=$content";
$ch = curl_init($url) ;
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
$result = @curl_exec($ch) ;
curl_close($ch) ;
return $result;
}