gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 05:40:22 24 4
gpt4 key购买 nike

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

这是我的代码:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com