10

我使用strophe.js库在浏览器中发送和接收 XMPP 消息。它工作正常,但仅适用于我已经在我的联系人列表中的用户 - 名册。

我需要将某人(我知道其地址)添加到我的名册中。如何使用 strophe.js 实现这一点?这对我来说很重要,因为 gmail 拒绝向我的名册中没有的人发送消息。我想订阅:两者,以便能够接收和发送消息。

4

1 回答 1

12

发送<presence to="friend@example.com" type="subscribe"/>

conn.send($pres({ to: "friend@example.com", type: "subscribe" }));

当您的朋友接受时,他们也应该向您发送订阅,您可以通过设置 Strophe 处理程序来处理“订阅”类型的传入状态:

function on_subscription_request(stanza)
{
    if(stanza.getAttribute("type") == "subscribe" && is_friend(stanza.getAttribute("from")))
    {
        // Send a 'subscribed' notification back to accept the incoming
        // subscription request
        conn.send($pres({ to: "friend@example.com", type: "subscribed" }));
    }
    return true;
}
conn.addHandler(on_subscription_request, null, "presence", "subscribe");
于 2012-03-01T14:33:29.037 回答