1

我希望我的 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");
4

0 回答 0