【问题标题】:iOS XMPP never receives any friend / roster requestsiOS XMPP 从不接收任何好友/名册请求
【发布时间】:2016-04-17 12:06:00
【问题描述】:

设置

我正在使用此代码发送好友/名册请求:

[[[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 管理面板中可见。此外,如果从管理面板添加用户,则客户端不会发生任何事情(即应该接收请求的用户。)。

【问题讨论】:

    标签: ios xmpp


    【解决方案1】:

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

    【讨论】:

    • 我在- (void)xmppStreamDidConnect:(XMPPStream *)sender 中使用XMPPPresence *presence = [XMPPPresence presence]; [self.stream sendElement:presence]; 发送出席信息。这是正确的做法吗?
    • 发送好友请求时应该发送出席信息!它应该可以工作
    • 我尝试在发送好友请求之前和之后(以及两者)都放置代码,但我仍然没有收到对方的回应
    • 如果你想接收一个出席对象,你的服务器也必须发送一个出席对象
    • 如何检查/启用它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多