iOS XMPP从未收到任何好友/花名册请求

5

设置

我使用以下代码发送好友/花名册请求:

[[[XMPPController sharedObject] roster] addUser:[XMPPJID jidWithString:[user stringByAppendingString:@"@server.com"]] withNickname:nil];

我可以确认,在ejabberd Web Admin控制面板中发送了该请求。此外,该请求也在流委托方法中返回:

- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq

作为确认。

我已经在这里阅读了多个问题,请求应该在委托方法中处理:

- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence

或者,另外

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

问题

问题在于一旦发送请求,这两种方法都不会被调用。

测试环境

  • iPhone 5 (iOS 9.3.1)
  • iPhone模拟器 (iOS 9.3)

从任何设备发送均无成功。

备注

我可以确认朋友请求已发送,因为它可在ejabberd管理面板中看到。此外,如果用户从管理面板添加,客户端不会发生任何事情(即应接收请求的那个客户端没有反应)。

1个回答

2

由于您没有发送任何XMPPPresence,因此不会调用方法- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence- (void)xmppRoster:(XMPPRoster *)sender didReceivePresenceSubscriptionRequest:(XMPPPresence *)presence


我正在使用 XMPPPresence *presence = [XMPPPresence presence]; [self.stream sendElement:presence];- (void)xmppStreamDidConnect:(XMPPStream *)sender 中发送在线状态。这是正确的做法吗? - JomanJi
1
当您发送好友请求时,应同时发送在线状态!这样应该就可以正常工作了。 - Loegic
我尝试在发送好友请求之前和之后(以及两者都尝试),将代码放置其中,但仍然没有从另一端得到响应。 - JomanJi
如果您想要接收一个存在对象,您的服务器也必须发送一个存在对象。 - Loegic
我该如何检查/启用它? - JomanJi
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接