前端:
socket.emit('login', 'a');
后端:
//将a加入多个群组.
$socket->join('a');
$socket->join('b');
$socket->join('c');
//给'a'送出消息,结果:'ok'
$sender_io->to('a')->emit('new_msg', $_POST);
//给'a'之外的分组如'b'或'c',则可送出消息,但结果是'offline'
$sender_io->to('b')->emit('new_msg', $_POST);
$sender_io->to('c')->emit('new_msg', $_POST);
请问这样将用户加入其余群组时,如何给'b,c'这样的分组回调'ok'且不影响统计online人数呢?
看下 offline哪里返回的吧,
$sender_io->to('b')->emit(...) 是不会返回offline的,应该是你业务逻辑哪里搞错了。
你可以把完整源码贴出来,大家帮你看看
默认的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');
}