• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 无法在 XMPP 中获取消息传递回执

[复制链接]
菜鸟教程小白 发表于 2022-12-13 02:03:14 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我是 XMPP 的新手。我正在为我的聊天应用程序使用 XMPP 和 Open fire 服务器。该应用程序正在运行,但现在我想获取消息传递回执。我为此使用以下代码, 在 setupStream:

   xmppMessageDeliveryRecipts = [[XMPPMessageDeliveryReceipts alloc] initWithDispatchQueue:dispatch_get_main_queue()];
   xmppMessageDeliveryRecipts.autoSendMessageDeliveryReceipts = YES;
   xmppMessageDeliveryRecipts.autoSendMessageDeliveryRequests = YES;
   [xmppMessageDeliveryRecipts activate:xmppStream];

sendMessage中:

    NSString *messageID=[xmppStream generateUUID];
    NSXMLElement *message = [NSXMLElement elementWithName"message"];
    [message addAttributeWithName"type" stringValue"chat"];
    [message addAttributeWithName"id" stringValue:messageID];
    [message addAttributeWithName"to" stringValue:myJID];
    [message addChild:body];

但我无法获得消息送达回执。我怎么才能得到它?有人知道吗?



Best Answer-推荐答案


您已经收到了送达回执响应,但 XMPPMessageDeliveryReceipts 模块不会自动处理它。您需要存储所有传入和传出的消息(检查 XMPPMessageArchiving 模块,它可以将消息保存在 XMPPMessageArchiving_CoreDataStorage 实例中),检查消息是否 hasReceiptResponse (在 XMPPMessage+XEP_0184 类别中定义),在接收响应中找到消息 id 并在消息存储中将相应的消息标记为“已交付”(您可能需要添加新属性,例如“已交付”到 XMPPMessageArchivingCoreDataObject如果你会使用这个模块,或者制作你自己的存储机制)

关于ios - 无法在 XMPP 中获取消息传递回执,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25887754/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap