返回的信息來(lái)判斷是否推送成功,來(lái)達(dá)到離線目的;目前這個(gè)推送是否成功怎么判斷
你好,問(wèn)下我用web-msg-sender項(xiàng)目,看了他們的DEMO,不知道在哪個(gè)方法接收到返回消息的例子
$inner_http_worker->onMessage = function($http_connection, $data){
global $uidConnectionMap;
global $sender_io;
$sender_io->emit('new_msg', $_POST);
// http接口返回,如果用戶離線socket返回fail
if($to && !isset($uidConnectionMap)){
return $http_connection->send('offline');
}else{
return $http_connection->send('ok');
}
return $http_connection->send('fail');
};
// 執(zhí)行監(jiān)聽(tīng)
$inner_http_worker->listen();
uidConnectionMap用這個(gè)來(lái)判斷在線、離線太簡(jiǎn)陋了,IOS系統(tǒng)無(wú)法實(shí)現(xiàn),
目前我想用發(fā)送成功還是失敗來(lái)判斷是否是離線還是在線
https://github.com/walkor/phpsocket.io/tree/master/docs/zh
接收消息參考手冊(cè),自定義一個(gè)消息,然后客戶端emit這個(gè)消息
你好,客戶端通過(guò)emit這個(gè)方法,返回給服務(wù)器么,那服務(wù)器端在哪里接收這個(gè)狀態(tài)信息
<script>
// 連接服務(wù)端
var socket = io('http://127.0.0.1:3120');
// 觸發(fā)服務(wù)端的chat message事件
socket.emit('chat message', '這個(gè)是消息內(nèi)容...');
<script>
$(document).ready(function () {
// 連接服務(wù)端
var socket = io('http://'+document.domain+':2120');
// 連接后登錄
socket.on('connect', function(){
socket.emit('login', uid);
});
// 后端推送來(lái)消息時(shí)
socket.on('new_msg', function(msg){
// ====== 給服務(wù)端回應(yīng) ======
socket.emit('ack', '回應(yīng)內(nèi)容');
$('#content').html('收到消息:'+msg);
$('.notification.sticky').notify();
});
// 后端推送來(lái)在線數(shù)據(jù)時(shí)
socket.on('update_online_count', function(online_stat){
$('#online_box').html(online_stat);
});
});
</script>
// PHPSocketIO服務(wù)
$sender_io = new SocketIO(2120);
// 客戶端發(fā)起連接事件時(shí),設(shè)置連接socket的各種事件回調(diào)
$sender_io->on('connection', function($socket){
// ======這里接收客戶端的回應(yīng) =======
$socket->on('ack', function($some_thing){
// $some_thing是客戶端回應(yīng)的內(nèi)容
});
// 當(dāng)客戶端發(fā)來(lái)登錄事件時(shí)觸發(fā)
$socket->on('login', ......
});
例子,其實(shí)就是手冊(cè)那點(diǎn)東西,ack是自定義消息類型,可以是任意的字符串
你好,APP應(yīng)用關(guān)閉后,我重新打開(kāi)APP獲取離線數(shù)據(jù),
但是這個(gè)方法好像沒(méi)重新執(zhí)行
socket.on('connect', function(){
socket.emit('login', userid);
});