3
我今天XMPPFramework一个挑战......XMPPFramework/iOS的问题:发送和接收订阅
我已经正确配置ejabberd:服务器是启动和运行,并通过带注册正确注册用户。
但是,当我尝试从一个设备发送订阅请求时,第二个不能接收第一个设备的在线状态。下面是我使用的第一个设备上的订阅用户的代码,如记录:
[[[self appDelegate] xmppRoster] addUser:userJID withNickname:nickname groups:nil subscribeToPresence:YES];
如果一切正常的话,第二个设备必须解雇的委托方法:
- (void)xmppRoster:(XMPPRoster *)sender didReceiveBuddyRequest:(XMPPPresence *)presence
的问题是这个委托方法从未被解雇。 服务器为用户创建新联系人,我可以在ejabberd Web管理员上看到它,但订阅类型设置为无。
任何想法?
UPDATE:
嗯,看来我忘记包括主机名到JID。现在,XMPPRoster的代表没有被调用,但是我可以在ejabberd上看到请求不是'none',而是'Both'和待验证。
无法想象为什么XMPPRoster代表不烧...看来,当用户收到新订阅请求ejabberd服务器不发送正确的通知...
嗨Yoryo,我面临同样的问题,我使用明火,但没有得到一个用户的存在。请帮忙,其紧急 – Khushboo 2014-07-30 17:51:47
嗯,我不再使用这个XMPPFramework项目,但我记得OpenFire有一个用户管理工具。也许你必须查看你从委托方法中得到的节。你可以在这里阅读:https://github.com/robbiehanson/XMPPFramework/wiki/IntroToFramework – 2014-07-31 06:20:37
我有理由相信OpenFire可能有解决JID的“资源”部分的方法,而ejabberd并没有。当JID的资源部分被添加和订阅时,委托方法触发。 – esh 2014-12-31 14:46:44