我希望我的 XMPPHP 客户端始终获得特定用户收到的消息的副本。这需要: - 能够检测所有现有客户端及其优先级 - 能够将 XMPPHP 的优先级设置为与另一个客户端中设置的最高优先级相同的级别。
有谁知道如何用 XMPPHP 做到这一点?我尝试在 XMPPHP 中更改第 190 行,但一旦我的两个 GMail 帐户来回聊天,它根本无法收到消息。
public function presence($status = null, $show = 'available', $to = null, $type='available', $priority=120) {
if($type == 'available') $type = '';
$to = htmlspecialchars($to);
$status = htmlspecialchars($status);
if($show == 'unavailable') $type = 'unavailable';
$out = "<presence";
if($to) $out .= " to=\"$to\"";
if($type) $out .= " type='$type'";
if($show == 'available' and !$status) {
$out .= "/>";
} else {
$out .= ">";
if($show != 'available') $out .= "<show>$show</show>";
if($status) $out .= "<status>$status</status>";
if($priority) $out .= "<priority>$priority</priority>";
$out .= "</presence>";
}
$this->send($out);
}
使用以下代码调用此方法:
$conn = new XMPPHP_XMPP('talk.google.com', 5222, 'aaaaa@gmail.com', 'bbbb', 'xmpphp', 'gmail.com', $printlog=true, $loglevel=XMPPHP_Log::LEVEL_INFO);
$conn->autoSubscribe(true);
$conn->connect();
$conn->getRoster();
$conn->presence($status="Active");