iOS XMPP PubSub 在向我的订阅用户发布节点时未接收事件

2023-11-29

我将 XMPPClient 与 ejjaberd 用于我的聊天应用程序(如 Whatsapp)。我想实现 XMPPPubsub 以在任何用户更改其个人资料图片时通知所有用户。

我的框架:https://github.com/robbiehanson/XMPPFramework

这是我的代码

初始化 XMPP 发布订阅

XMPPJID *serviceJID =[XMPPJID jidWithString:[NSString stringWithFormat:@"pubsub.%@",[[SharedClass sharedInstance] hostName]]];
     _xmppPubSub = [[XMPPPubSub alloc]initWithServiceJID:serviceJID     dispatchQueue:dispatch_get_main_queue()];
    [_xmppPubSub addDelegate:self delegateQueue:dispatch_get_main_queue()];
    [_xmppPubSub activate:xmppStream];

创建节点:

NSString *nodeName =[[NSUserDefaults standardUserDefaults] valueForKey:@"kmobileNo"]; // logged in user or current user
[[[XmppClient sharedInstance] xmppPubSub] createNode:nodeName withOptions:@{@"pubsub#title":nodeName,@"pubsub#deliver_notifications":@"1",@"pubsub#subscribe":@"1",@"pubsub#presence_based_delivery":@"1",@"pubsub#publish_model":@"open",@"pubsub#access_model":@"open",@"pubsub#persist_items":@"1",@"pubsub#notify_sub":@"1",@"pubsub#deliver_payloads":@"1"}];

订阅用户

for (Contact *obj in arrayUsers) {
        NSLog(@"elsa user %@",obj.phoneNumber);
        [[XmppClient sharedInstance].xmppPubSub subscribeToNode:obj.phoneNumber withJID:[XmppClient sharedInstance].xmppStream.myJID options: @{ @"pubsub#deliver"      : @(YES),
                                                                                                                                                 @"pubsub#digest"       : @(YES),
                                                                                                                                                 @"pubsub#include_body" : @(YES),
                                                                                                                                             @"pubsub#show-values"  : @[ @"chat", @"online", @"away" ] }];
  }

发布事件:

    NSString *nodeName =[[NSUserDefaults standardUserDefaults] valueForKey:@"kmobileNo"];


   NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
            [body setStringValue:@"String to post"];

   NSXMLElement *messageBody = [NSXMLElement elementWithName:@"message"];
   [messageBody setXmlns:@"jabber:client"];
   [messageBody addChild:body];
   [[[XmppClient sharedInstance] xmppPubSub] publishToNode:nodeName entry:messageBody withItemID:nil options:@{@"pubsub#access_model":@"open"}];

我的问题是

  1. 当用户向我的订阅用户发布节点时,我没有收到下面委托上的事件

    -(void)xmppPubSub:(XMPPubSub *)发送者 didReceiveMessage:(XMPPMessage *)消息 { NSLog(@"消息%@",消息); }

但是当我创建节点时,我在上面的委托上正确地获取了所有事件。我正在初始化 pubsub 后创建我的节点。因此,当我启动应用程序时,我会收到所有事件,因为我正在 Appdelegate 上初始化 pubsub。

每当我启动应用程序时,我也会不断收到相同的事件。例如,如果我要接收事件(个人资料图片已更改),那么我将在启动应用程序时在“didReceiveMessage”上获取它。在接下来的每次发射中我都会得到同样的结果。

当有人发布给我的订阅用户时(当用户更改个人资料图片时),而不是在启动应用程序时(创建节点时),我想在“didReceiveMessage”委托上获取事件。

  1. 如何获取所有被我订阅的用户。 ?

3.如何知道节点已经用我的号码创建了?

4.我想知道为什么我在创建节点时而不是在用户发布到节点时收到事件?

5.为什么每次创建节点时我都会一次又一次收到相同的事件? 请帮我 。提前致谢。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS XMPP PubSub 在向我的订阅用户发布节点时未接收事件 的相关文章

  • 从 robovm 项目创建 iOS 静态库(JNI 中的 BAD_ACCESS)

    我有大量的Java代码 只有计算函数 没有UI 我想在iOS中将其重用为静态库 我的方法是使用robovm http www robovm com并按照robovm论坛中两篇文章中描述的非官方方式创建静态库 1 基本方式 https gro
  • 如何判断 NSObject 是否具有某个属性?

    假设在 Apple API 1 0 版中 有一个 NSFoo 类 其属性为 color API 1 1 添加了属性 size 我想知道是否可以使用 getter myFoo size myFoo respondsToSelector sel
  • 有什么方法可以询问方法的名称吗?

    我正在尝试调试我正在开发的 iPhone 应用程序 向各种源文件添加 50 条 NSLog 语句的想法让我感到很兴奋 我想做的是写一对陈述 比如 NSString methodName self methodName NSLog metho
  • 有没有办法在 Firebase 中等待查询完成?

    我正在使用 TableView 在 Viewcontroller 中的 iOS 应用程序中进行查询 我想确保在继续加载 TableView 之前我的查询已经返回 有没有办法保证查询已经完成 None
  • 在 iOS 7 中 viewForHeaderInSection 部分是从 1 开始而不是从 0 开始

    我正在处理UITableView在我的项目中 这个项目是在 Xcode 4 5 中创建的 现在我正在使用 Xcode 5 所以我的问题是何时在 iOS 6 中运行我的项目 viewForHeaderInSection方法部分从 0 开始没问
  • 使用数组中的字符串淡入/淡出标签

    func setOverlayTitle self overlayLogo text Welcome var hello String Bon Jour GUTEN nMORGEN BONJOUR HOLA BUENOS D AS BUON
  • 如何删除 UITableView 中的缩进?

    首先 我对此很陌生 我很可能忘记了一些非常简单的事情 问题 我正在制作一个应用程序 在 a 中显示来自 imgur com 的随机图像tableView 由于某种原因 所有单元格都会缩进少量 如下图所示 我摆弄了许多设置storyboard
  • iOS 7 tabBar 横线,如何去掉?

    Apple 在 iOS 7 中的 tabBar 上添加了一条细线 该线应该在 tabBar 和 UI 之间起到阴影或淡入淡出的作用 由于我使用的是定制的 tabBar 这条线非常令人恼火 你如何删除它 请告诉我这是可能的 否则我需要重新设计
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • AVAudioPlayer 无法从网站播放 m4a 或 mp3 文件类型

    我试图在我的应用程序中找到一个仅纯 m4a 声音的 URL 我有音频的 URL 理论上可以下载它 然后 使用下载的文件URL到声音 我尝试使用AVAudioPlayer播放它 但它不播放任何声音 这是我的代码 在 URL 检索函数中 我调用
  • CATextLayer 上 iOS 6 中不需要的垂直填充

    背景 我在 iOS 5 中开始了我的项目 并构建了一个带有图层的漂亮按钮 我在按钮上添加了一个 textLayer 并使用以下代码将其居中 float textLayerVerticlePadding self bounds size he
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 在 Objective-C 中的 Swift 类上调用 NSStringFromClass 返回模块损坏的名称

    我知道这个问题 https stackoverflow com questions 24107658 get a user readable version of the class name in swift in objc nsstri
  • UICollectionView setLayout:animated: 不保留 zIndex

    我注意到打电话时setLayout animated in a UICollectionView要在两个布局之间切换 当前可见的单元格不遵循zIndex它的布局属性已设置在layoutAttributesForItemAtIndexPath
  • 詹金斯配置文件问题

    检查依赖关系 找不到与 Nitin xxxxxxx xyzCAppStore 匹配的 iOS 配置文件 Xcode 找不到与 Nitin xxxxxxx xyzCAppStore 匹配的配置文件 安装配置文件 通过将其拖放到 Xcode 的
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • Glib 在 iPhone 应用程序中的使用

    我想基于现有的开源 Objective C 框架开发一个 iPhone 应用程序 但是该框架广泛使用了 glib 库 我找不到一种方法来构建和包含 iPhone 应用程序的 glib 库 非越狱 有什么办法可以做到这一点 或者有没有推荐的方
  • 使用日期 Swift 3 对字典数组进行排序

    我有一个名为 myArray 的数组 其中添加了字典 我希望该字典按时间排序 这是字典中的键 那个时间是在 String 中 时间的日期格式为 yyyy MM dd HH mm ss 我尝试使用下面的代码解决方案 但给出了 从 字符串转换
  • 使用强光混合模式时突出显示伪影

    我正在 iPhone 应用程序中使用顶部图像的 HardLight 混合模式混合两个图像 它看起来像这样 UIGraphicsBeginImageContext size sourceImage drawInRect rectangle b
  • Unwind segue 的用途是什么以及如何使用它们?

    iOS 6 和 Xcode 4 5 有一个称为 Unwind Segue 的新功能 展开转场可以允许过渡到故事板中场景的现有实例 除了 Xcode 4 5 发行说明中的 这个简短条目之外 UIViewController 现在似乎还有几个新

随机推荐

  • 关键词元标签:有用还是浪费时间?

    我总是在我的网站页面上放置元关键字 但我听说有传言说你不必这样做 我应该继续在我的页面上添加关键字还是只是浪费时间 This article说 谷歌多年前就不再使用 META 关键字 因为它们很容易被滥用 Quote 我们的网络搜索 Goo
  • 匿名类型 - 有什么显着特征吗?

    有什么可以用来确定类型是否实际上是匿名类型 例如接口等 目标是创建如下内容 defined like public static T Get
  • 在 ggraph() 的每个面板中复制整个网络的小倍数图

    我想使用以下方法制作网络的小倍数图ggraph 对于网络中的每个节点 我有两个功能 feat1 and feat2 我想想象一下feat1在一个面板中用于整个网络 以及feat2对于另一个面板中的整个网络 每个面板应包含网络中相同位置的所有
  • 如何创建自定义组件并将其添加到 Spring java dsl 中的流程?

    我想创建一个客户组件trace 并想在流程中使用它 就像是CustomFlows from trace get 你能建议我该怎么做吗 似乎 IntegrationFlowDefinition 已关闭且不可扩展 这是一项有趣的技术 但现在我不
  • 为空的 pandas 数据框设置列

    这是我很困惑的事情 import pandas as pd this works fine df1 pd DataFrame columns A B but let s say I have this df2 pd DataFrame th
  • TypeScript 错误 TS1005: ';'预期(二)

    首先 我已经看过有关错误 TS1005 的其他帖子 相同的错误代码 但完全不同 一个简单的let x number 将生成error TS1005编译期间 这并不是像错误消息所说的那样缺少分号 而是编译器无法识别 let 关键字 我读到这可
  • 我如何实现苹果集群模式中的行为(NSString 和 NSCFString)

    我只是出于测试目的编写以下代码 NSString aStr NSString alloc initWithFormat Foo aStr aStr initWithFormat Bar Crashed here 我收到以下错误 initia
  • Flex - 如何制作选项卡面板

    我的应用程序有 3 类按钮 我想要一个选项卡式面板 可以用来在 3 类之间切换 如下所示example 我的应用程序是一个移动应用程序 所以我不能使用 mx 组件 当我尝试搜索移动选项卡式导航等时 我只提出了 viewnavigator 示
  • 使用 NHibernate 映射一对多的最小且正确的方法

    我是 NHibernate 和 C 的新手 所以请温柔一点 我有以下两个 NHibernate 实体 Employee private long id private String name private String empNumber
  • 获得 8 个源 __m256 向量的水平和的 __m256 的最有效方法[重复]

    这个问题在这里已经有答案了 我知道如何求和 m256获得单个求和值 然而 我有 8 个向量 例如 输入 1 a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 8 h 0 h 1 h 2 h 3 h 4 a 5 a 6 a 7
  • 如何最好地确定参数是否未发送到 JavaScript 函数

    我现在看到了两种方法来确定参数是否已传递给 JavaScript 函数 我想知道一种方法是否比另一种更好 或者是否一种方法不好用 function Test argument1 argument2 if Test arguments len
  • Airflow 未回填最新运行

    由于某种原因 Airflow 似乎不会触发具有每周计划间隔的 dag 的最新运行 当前日期 date Tue Aug 9 17 09 55 UTC 2016 DAG from datetime import datetime from da
  • chown 和 chmod 后用户的文件夹权限被拒绝

    我有一个目录 home ec2 user vertica1 我正在尝试让用户dbadmin该文件夹中的所有权限 我已经对该文件夹执行了 chown 到 dbadmin 和 chmod 777 但 dbadmin 仍然收到权限被拒绝错误 如果
  • 在 iOS 中关联我的应用程序的自定义文件

    我正在尝试关联我的应用程序创建的自定义文件 它是 XML 以便用户可以通过电子邮件相互发送文件 我已经遵循了这里的优秀教程 如何将文件类型与 iPhone 应用程序关联 该文件名为 XXX checklist 但这不是关联 我相信我的问题出
  • 如何使用itext删除PDF附件

    我是 pdf 新手 我使用以下代码将文件嵌入到 pdf 中 但是 我想编写另一个程序来删除嵌入文件 我可以知道我该怎么做吗 真的感谢 public void addAttachments String src String dest Str
  • 根据反应中另一个选择框的值动态加载选择框的选项

    我正在尝试创建 2 个选择框 其中第一个选择框的选项是固定的 但第二个选择框的选项根据第一个 div 的选定值而变化 例如 第一个选择
  • 如何在 CANoe/CAPL 中包含 .h 或 .dll 文件

    我想在CAPL中集成一个头文件 h或 dll 具体是Visa32 dll visa h或sicl h 来控制万用表34461A 如何在 CANoe 中包含 h 文件或 dll 文件 我创建了一个名为万用表的 ECU 模块 谢谢 在 CAPL
  • 忽略 pexpect 响应中的 ANSI 颜色

    我可以用吗pexpect以忽略输出中的 ANSI 转义码 尤其是颜色 的方式 我正在尝试这样做 expect foo 3 bar 5 but 有时我得到带有 ANSI 颜色数字的输出 问题是我不知道哪些数字有 ANSI 颜色 哪些没有 有没
  • 带有文本和图标的微调器

    在我的应用程序中 我有一个Spinner 可以填充两个Arrays of Strings 存储在我的values strings xml资源 根据两个单选按钮的状态 选择正确数组中的值并填充我的微调器 对于每个字符串数组 我都有一个大小相同
  • iOS XMPP PubSub 在向我的订阅用户发布节点时未接收事件

    我将 XMPPClient 与 ejjaberd 用于我的聊天应用程序 如 Whatsapp 我想实现 XMPPPubsub 以在任何用户更改其个人资料图片时通知所有用户 我的框架 https github com robbiehanson