前端:
socket.emit('login', 'a');
后端:
//將a加入多個(gè)群組.
$socket->join('a');
$socket->join('b');
$socket->join('c');
//給'a'送出消息,結(jié)果:'ok'
$sender_io->to('a')->emit('new_msg', $_POST);
//給'a'之外的分組如'b'或'c',則可送出消息,但結(jié)果是'offline'
$sender_io->to('b')->emit('new_msg', $_POST);
$sender_io->to('c')->emit('new_msg', $_POST);
請(qǐng)問這樣將用戶加入其余群組時(shí),如何給'b,c'這樣的分組回調(diào)'ok'且不影響統(tǒng)計(jì)online人數(shù)呢?
看下 offline哪里返回的吧,
$sender_io->to('b')->emit(...) 是不會(huì)返回offline的,應(yīng)該是你業(yè)務(wù)邏輯哪里搞錯(cuò)了。
你可以把完整源碼貼出來,大家?guī)湍憧纯?/p>
默認(rèn)的web-msg-sender/start_io.php文件里有直接顯示online 或offline的:
// http接口返回,如果用戶離線socket返回fail
if($to && !isset($uidConnectionMap[$to])){
return $http_connection->send('offline');
}else{
return $http_connection->send('ok');
}