Strophe添加名册联系

Jul*_*rer 3 javascript xmpp openfire strophe

我目前正致力于"添加名册联系"功能.

1)我添加了一个新的联系人到我的名册:

var iq = $iq({type: "set"}).c("query", {xmlns: "jabber:iq:roster"}).c("item"  {jid:"test@hostname.de/test",name:"test"});
Chat.connection.sendIQ(iq);
Run Code Online (Sandbox Code Playgroud)

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

2)将"subscribe"类型的在线节发送到新联系人('test'):

var subscribe = $pres({to: test@hostname.de/test, type: "subscribe"});
Chat.connection.send(subscribe);
Run Code Online (Sandbox Code Playgroud)

这有效,但不是每次都有效:

当我添加到我的名单('test')的人当前没有活动会话(未登录)时,我获得了发件人的订阅类型'none',并且还获得了'none'的订阅类型测试'.

所以:

接收者'测试':订阅'无'

发件人'我':订阅'无'

当我添加到我的名单的人有一个活动会话时,预期的订阅类型'到'和'从'成功设置.

任何的想法 ?

Joe*_*and 5

请勿在订阅请求中使用to地址上的资源:

var subscribe = $pres({to: "test@hostname.de", type: "subscribe"});
Chat.connection.send(subscribe);
Run Code Online (Sandbox Code Playgroud)

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