ios - XMPP 在 objective-C 中实现 XEP-0198

标签 ios objective-c xmpp openfire

注意:服务器已经安装并运行流管理。

这是我的代码:

XMPPStreamManagementMemoryStorage *storage1=[[XMPPStreamManagementMemoryStorage alloc] init];
xmppStreamManagement=[[XMPPStreamManagement alloc] initWithStorage:storage1];
xmppStreamManagement.autoResume = YES;
[xmppStreamManagement enableStreamManagementWithResumption:TRUE maxTimeout:5];
[xmppStreamManagement addDelegate:self delegateQueue:dispatch_get_main_queue()];
[xmppStreamManagement activate:xmppStream];
 [xmppStreamManagement requestAck];

我也实现了委托(delegate)方法。 但是我既没有在委托(delegate)方法中得到响应,也没有看到流管理工作。

它将如何工作以及我们如何验证它?

这里,如果我在iOS端实现流管理成功,那么离线消息会自动丢失

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message

我们将不胜感激。

最佳答案

在您的 iOS 应用中启用 XMPPStreamManagement 非常容易。

使用XMPPStreamManagementMemoryStorage 初始化您的XMPPStreamManagement 实例。

XMPPStreamManagementMemoryStorage *xmppSMMS = [[XMPPStreamManagementMemoryStorage alloc] init];
xmppStreamManagement = [[XMPPStreamManagement alloc] initWithStorage:xmppSMMS];

添加你的实现类作为它的委托(delegate)

[xmppStreamManagement addDelegate:self delegateQueue:dispatch_get_main_queue()];

一旦 XMPPStream 已连接并发生绑定(bind),现在启用流管理。

[xmppStreamManagement activate:xmppStream];
xmppStreamManagement.autoResume = YES;
[xmppStreamManagement enableStreamManagementWithResumption:YES maxTimeout:0];
[xmppStreamManagement requestAck];

实现委托(delegate)方法

- (void)xmppStreamManagement:(XMPPStreamManagement *)sender wasEnabled:(NSXMLElement *)enabled{
}

- (void)xmppStreamManagement:(XMPPStreamManagement *)sender wasNotEnabled:(NSXMLElement *)failed{
}

- (void)xmppStreamManagement:(XMPPStreamManagement *)sender didReceiveAckForStanzaIds:(NSArray *)stanzaIds{
}

关于ios - XMPP 在 objective-C 中实现 XEP-0198,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36905762/

相关文章:

ios - 询问是否仍在播放由应用加载并启动的声音的iOS API方法

java - 当有人加入或离开 smackx 中的 MultiUserChat 时,如何找出房间的居住者?

xmpp - 当两个 Jabber (XMPP) 客户端连接时,只有一个能够接收消息,两个都可以发送

java - XMPP 与 Android Studio 上的 Smack 4.1 连接

html - iPhone 6 上的 CSS 出现一些问题

iphone - 部署目标为 7.0 时架构错误的 undefined symbol

ios - 按键值对字典数组进行排序

ios - pageViewController 点击选择 UI 怎么做?

ios - 删除部分图像 iOS

iOS 自定义键盘的键盘关闭按钮