3

我今天对 XMPPFramework 有一个挑战……

我已正确配置 ejabberd:服务器已启动并运行,并通过带内注册正确注册用户。

但是,当我尝试从一台设备发送订阅请求时,第二台设备无法接收到第一台设备的存在。这是我在第一台设备上用于订阅用户的代码,如文档所述:

[[[self appDelegate] xmppRoster] addUser:userJID withNickname:nickname groups:nil subscribeToPresence:YES];

如果一切顺利,第二个设备必须触发委托方法:

- (void)xmppRoster:(XMPPRoster *)sender didReceiveBuddyRequest:(XMPPPresence *)presence

问题是这个委托方法永远不会被触发。服务器为用户创建新联系人,我可以在 ejabberd 网络管理员上看到它,但订阅类型设置为无。

有任何想法吗?

更新:

好吧,似乎我忘记将主机名包含在 JID 中。现在,XMPPRoster 的代表没有被调用,但我可以在 ejabberd 上看到该请求不是“无”而是“两者”和待验证。

无法想象为什么 XMPPRoster 代表没有触发......当用户收到新的订阅请求时,ejabberd 服务器似乎没有发送正确的通知......

4

1 回答 1

1

似乎 eJabberd 配置错误或其他什么。刚刚安装了 OpenFire,一切正常。

于 2013-05-12T21:12:35.710 回答