我目前正在使用“添加花名册联系人”功能。

1)我使用以下命令向我的名册添加新联系人:

var iq = $iq({type: "set"}).c("query", {xmlns: "jabber:iq:roster"}).c("item"  {jid:"[email protected]/test",name:"test"});
Chat.connection.sendIQ(iq);

联系人已成功添加到我的花名册。

2)将类型为“订阅”的在线状态节发送给新联系人(“测试”):
var subscribe = $pres({to: [email protected]/test, type: "subscribe"});
Chat.connection.send(subscribe);

可行,但并非每次都可行:

当我要添加到名册(“测试”)的人拥有
目前没有 Activity 的 session (未登录)
,我得到了一个
发送者的订阅类型为“无”,并且
“测试”的订阅类型为“无”。

因此:

接收方“测试”:订阅“无”

发件人“我”:订阅“无”

当iam添加到我的花名册中的人活跃时
session 中,成功设置了预期的订阅类型“to”和“from”。

有什么想法吗?

最佳答案

不要在上使用资源来订阅请求中的地址:

var subscribe = $pres({to: "[email protected]", type: "subscribe"});
Chat.connection.send(subscribe);

当用户稍后联机时,他们应该收到您的请求通知,并可以使用<presence type="subscribed"/>节进行答复。如果将资源放在to地址上,则可能会出现奇怪的路由规则,这些规则不会导致您的请求被存储。

关于javascript - 补充名册联系人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18044075/

10-09 10:00