XMPPHP クライアントが、特定のユーザーが受信したメッセージのコピーを常に取得するようにします。これには以下が必要です: - 既存のクライアントとその優先度をすべて検出できること - XMPPHP の優先度を、別のクライアントで設定されている最高の優先度と同じレベルに設定できること。
XMPPHPでこれを行う方法を知っている人はいますか? XMPPHP の 190 行目を変更しようとしましたが、2 つの 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");