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'的订阅类型测试'.
所以:
接收者'测试':订阅'无'
发件人'我':订阅'无'
当我添加到我的名单的人有一个活动会话时,预期的订阅类型'到'和'从'成功设置.
任何的想法 ?
请勿在订阅请求中使用to地址上的资源:
var subscribe = $pres({to: "test@hostname.de", type: "subscribe"});
Chat.connection.send(subscribe);
Run Code Online (Sandbox Code Playgroud)
当用户稍后上线时,他们应该收到您的请求的通知,并可以回复一个<presence type="subscribed"/>节.如果您将资源放在地址上,则可能会出现奇怪的路由规则,这些规则不会导致您的请求被存储.