同一视图控制器中的 AWS AppSync 多个订阅不起作用 - iOS Swift

2023-12-19

仅供参考我发布了这个问题在 AWS AppSync 论坛中(以防将来 AWS 回答它)。

我一直在尝试制作一个简单的帖子应用程序,例如docs https://docs.aws.amazon.com/appsync/latest/devguide/building-a-client-app-ios.html但我没有找到在一个视图控制器中处理多个订阅的文档或指南。

三个突变:onCreatePost、onUpdatePost、onDeletePost (当然还有这些突变的三个订阅)

在 Xcode 中,我在 viewDidLoad() 期间调用了三个函数: subscribeToNewPosts()、subscribeToUpdatedPosts()、subscribeToDeletedPosts()

每个订阅功能都会工作并创建具有正确功能的订阅并相应地更新表视图如果单独使用。但是,如果依次调用,则只有最后一个订阅才会真正接收数据并更新表视图。订阅所有三个突变后,我在 AppSyncMQTTClient.swift 中放置了一个断点来检查 topicSubscribersDictionary

func startNewSubscription(subscriptionInfo: AWSSubscriptionInfo) {
        var topicQueue = [String]()
        let mqttClient = MQTTClient<AnyObject, AnyObject>()
        mqttClient.clientDelegate = self
        for topic in subscriptionInfo.topics {
            if topicSubscribersDictionary[topic] != nil {
                // if the client wants subscriptions and is allowed we add it to list of subscribe
                topicQueue.append(topic)
            }
        }
        mqttClients.append(mqttClient)
        mqttClientsWithTopics[mqttClient] = topicQueue
        mqttClient.connect(withClientId: subscriptionInfo.clientId, toHost: subscriptionInfo.url, statusCallback: nil)
    }

事实上,所有三个订阅都在字典中......

我是否需要多个 appSyncClient 实例,每个订阅一个?是架构设计的问题吗?

schema.graphql https://s3-us-west-2.amazonaws.com/awsforumuploads/Posts/iOS+-+Multiple+subscriptions+in+same+view+controller/schema.graphql

架构.json https://s3-us-west-2.amazonaws.com/awsforumuploads/Posts/iOS+-+Multiple+subscriptions+in+same+view+controller/schema.json

突变.graphql https://s3-us-west-2.amazonaws.com/awsforumuploads/Posts/iOS+-+Multiple+subscriptions+in+same+view+controller/mutations.graphql

查询.graphql https://s3-us-west-2.amazonaws.com/awsforumuploads/Posts/iOS+-+Multiple+subscriptions+in+same+view+controller/queries.graphql

订阅.graphql https://s3-us-west-2.amazonaws.com/awsforumuploads/Posts/iOS+-+Multiple+subscriptions+in+same+view+controller/subscriptions.graphql

示例用例:简单的聊天应用程序。新对话开始 = OnCreatePostSubscription;该对话中的新传入消息 = OnUpdatePostSubscription


你正在用吗API Key授权于AppSync?如果您正在使用API Key目前 SDK 仅支持一种订阅。你能切换到IAM(认知身份)或Cognito UserPools基于身份验证并查看多个订阅是否适合您?

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

同一视图控制器中的 AWS AppSync 多个订阅不起作用 - iOS Swift 的相关文章

  • 如何在 iOS 中将 Firebase 对象持久保存到磁盘?

    看起来Firebase http www firebase comiOS 实现不支持客户端模型的离线缓存 这在实践中意味着 对于需要身份验证的 Firebase 应用程序 您需要首先进行身份验证并等待 Firebase 完成登录 检查用户身
  • 如何在应用程序项目中使用 Cocoa Touch 框架

    我熟悉构建单个 iOS 应用程序 但我坚持使用 Cocoa Touch 框架向多个应用程序共享通用代码 问题 框架的头文件不可见 无法链接到消费应用程序项目 我做了什么 1 我创建了一个名为 libTestFramework 的项目 Coc
  • 如何使用 SwiftUI 获取多个屏幕上的键盘高度并移动按钮

    以下代码获取键盘显示时的键盘高度 并将按钮移动键盘高度 在转换源 ContentView 和转换目标 SecibdContentView 处以相同的方式执行此移动 但按钮在转换目标处不移动 如何使按钮在多个屏幕上移动相同 import Sw
  • 在 UITextView 中获取 HTML

    我在中显示htmlUITextView by self textView setValue b Content b forKey contentToHTMLString 编辑内容后UITextView 我想获取包含 html 的内容 所以我
  • 如何组合两个 SwiftyJSON 对象

    我有一个 swiftyJSON 对象 例如 location http img http commentCount 0 timestamp 1432460217550 我希望能够向其附加另一个 swiftyJSON 对象 使其看起来像 lo
  • 使用 Quartz 创建 PDF 注释 (iOS)

    有人设法使用 Quartz 在现有 PDF 中编写自定义注释吗 我已经使用 CGPDFDocumentRef 等渲染了 PDF 现在工作正常 我成功地阅读了 Annots 字典 if CGPDFDictionaryGetArray page
  • 在 ios 版 Ionic 中接收 URL

    我正在使用离子框架 我正在尝试设置一种从另一个应用程序接收网址的方法 就像 您在浏览器中 单击共享 然后将链接发送到另一个应用程序 我的应用程序 我找到了这个cordova https stackoverflow com questions
  • Apple Developer 应用程序门户不再可以生成新的 Bundle Seed ID

    iOS 开发者门户中的新界面不再为您的应用程序 ID 提供 生成新的 按钮 取而代之的是 使用团队 ID 这将导致使用相同的种子 ID 任何人都知道为什么要进行更改以及您应该如何使用新的捆绑包种子 ID 随意补一些 不再可能生成新的种子 I
  • 如何将CIFilter应用到UIView上?

    根据Apple docs 过滤属性CALayer不支持iOS 当我使用正在申请的应用程序之一时CIFilter to UIView即 Splice Funimate 和 Artisto 的视频编辑器 Videoshow FX 这意味着我们可
  • 如何在PHP中将图像从内存上传到AWS S3?

    所以我目前有一个使用 AWS S3 上传图像的上传系统 这是代码 Upload image to S3 s3 Aws S3 S3Client factory array key gt mykey secret gt myskey try s
  • 通过 boto3 承担 IAM 用户角色时访问被拒绝

    Issue 我有一个 IAM 用户和一个 IAM 角色 我正在尝试将 IAM 用户配置为有权使用 STS 承担 IAM 角色 我不确定为什么收到 访问被拒绝 错误 Details IAM 角色 arn aws iam 123456789 r
  • 循环多个 UIAlertController

    在某些情况下 我的应用程序需要显示多个警报消息 错误消息在启动时收集 并且需要一次向用户显示一条 当第一个被确认后 应该呈现下一个 问题在于 显然 它们都试图同时执行 有没有一种聪明的方法可以同步执行此操作 这是一些简单描述我想要做的事情的
  • 在 Swift 中以编程方式为 iOS 制作带有名字首字母的图像,例如 Gmail

    我需要在 UITableView 中显示与其姓名相对应的每个用户的个人资料图片 在下载图像之前 我需要显示一张带有他名字的第一个字母的图像 就像在 GMail 应用程序中一样 如何在 Swift for iOS 中以编程方式执行此操作 不需
  • 在 UITableView 的部分标题文本下方添加一些边距

    我已经设计了标题文本的样式 func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath gt UITableViewCell let ce
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • UILabel UILongPressGestureRecognizer 不起作用?

    我怎样才能得到UILongPressGestureRecognizer在 uilabel 当我实现以下代码时 它不会调用该函数 那么请告诉我我做错了什么 UILongPressGestureRecognizer longPress UILo
  • 子类 PFObject 上的 PFUser 属性

    我使用以下类 动态属性以及 m 文件中的 load 和 parseClassName 方法 对 PFObject 进行了子类化 interface DAOpponents PFObject
  • 领域:结果 和列表

    是否可以转换Results
  • WKWebview 中的 iCLoud 文档选择器关闭容器视图

    我有一个 WKWebview 加载基于 Web 的 UI 我希望用户能够从其 iCloud 文档上传文件 我已授予正确的权限 并且可以浏览 iCloud 文档 但是 当我选择文件或单击取消按钮时 文档选择器视图也会关闭 WKWebview
  • 如何在 Elastic Beanstalk 上添加 PATH

    我想将 PATH 添加到包上eb deploy 软件包安装到 var www html vendor bin 可以通过SSH手动添加 但是如何使用配置文件添加PATH 我有这样的配置文件 ebextensions ec2 config 01

随机推荐

  • 在 Symfony 中防止 Doctrine 的查询缓存

    在我的 Symfony Doctrine 应用程序中 我有一个按 RANDOM 排序的查询 我多次调用相同的方法 但看起来查询的结果正在被缓存 这是我的相关代码 query table gt createQuery p gt select
  • 如何在 Chrome 应用程序中包含数据文件以供本机客户端模块读取

    如果我有一个 Chrome 打包应用程序 其中还包含 PNaCl NaCl 模块 是否有办法在打包应用程序中包含一些数据文件 然后 NaCl 模块将读入这些数据文件 我不需要编写任何文件 只需包含本机模块需要使用的一些数据文件即可 Java
  • Jruby 中的 Java 数组

    我有一个 Java 库 我正在从中提取一些数据 它输出一个 3D 数组 但是我无法用它做任何事情 D 5615a6e0 是我得到的回应 我尝试过映射它 arr arr map arr arr to a 但我什么也没得到 解析这个java数组
  • Android 稍后通知用户

    我想在android中创建一个应用程序 其中用户选择未来的某一天 然后 当那一天到来时 他会收到通知 我知道这可以通过日历或注释来完成 但这并不对我来说很重要 我有两个与前一个问题相关的问题 A 我该如何执行通知 我在其他地方读到过有关向用
  • 停止/取消执行 FFmpeg 命令

    Android 有可用的 FFmpeg Static 二进制 我们可以在 FFmpeg 执行某些操作时停止 取消某些 FFmpeg 执行 命令 https github com WritingMinds ffmpeg android jav
  • 为什么 jQuery 事件在就绪函数之外时不触发,即使文档已就绪?

    尽管 DOM 似乎已加载 控制台中显示 就绪 为什么在这种情况下单击事件未触发 document ready function console log ready p click function alert You clicked on
  • 如何在页面加载时逐个淡入图像?

    我创建了以下代码 在页面加载时向页面上的所有 div 添加 opacity 1 这样做时 所有图像都会在页面加载时看到 但我希望每个图像都慢慢淡入 并且在一个图像完全加载 可见后 我希望第二个图像加载完全相同 然后加载第三个图像 我怎样才能
  • Java中可以更改内部类的外部类实例吗?

    在Java中 每当创建内部类实例时 它都会与外部类的实例相关联 出于好奇 是否可以将内部类与外部类的另一个实例相关联 是的 这是可能的 尽管这对我来说听起来是一个非常糟糕的主意 这个想法是设置否则final使用反射指向外部实例的指针 不保证
  • 绘图不显示

    我有一个相当简单的 xml 文件 其中有一个图像按钮 该图像在图形布局 xml 设计器上显示良好 当我运行开发构建时显示良好 但一旦我创建签名的 apk 文件并运行它 图像就不再显示 这只是一个空按钮 我想不出原因 有什么想法吗 xml 文
  • LINQ to SQL 将不会生成可控制查询

    我正在使用 LINQ To Sql 不是实体框架 System Data Linq DataContext 库 访问 SQL Server 2005 数据库并使用 Net Framework 4 表 dbo Dogs 有一个类型为 CHAR
  • '{"errors":{"base":["禁止。需要用户。"]}}'

    大家好 我正在尝试上传它向我展示的用户个人资料图片 errors base 禁止 需要用户 这个错误请让我知道我做错了什么 QBContent uploadFileTask profilePic true new QBCallbackImp
  • docker swarm - 如何平衡 swarm 集群中已经运行的容器?

    我在 AWS 上有一个带有 2 个节点的 docker swarm 集群 我停止了这两个实例 最初启动了 swarm manager 然后启动了worker 在停止实例之前 我运行了一个服务 该服务在管理器和工作人员之间分配了 4 个副本
  • 保留标识符在编译的哪个阶段被保留?

    只是工作中的一点好奇心 在从事危险的工作时 我开始考虑各种编译器及其相关标准库的实现 以下是我的想法的进展 某些类别的标识符保留供 C 和 C 中的实现使用 编译器必须执行编译阶段 预处理 编译 链接 就好像它们是按顺序执行的一样 C 预处
  • 使用众多接口中的一个作为函数中的参数

    我有一个这样的函数 interface Interface1 one string interface Interface2 two string interface Interface3 three string type ManyInt
  • 自动计算与 Firebase Firestore Flutter 中存储的地理坐标数据的距离

    我已在 firestore 数据库中存储了项目的纬度和经度 字段为 item latitude 和 item longitude 因此 所有项目都有纬度和经度 我可以使用流来获取项目 例如 Stream
  • RSelenium 不工作

    我尝试使用以下命令安装并运行 R Selenium 包的简单示例 install packages RSelenium library RSelenium startServer checkForServer startServer rem
  • Javascript 中接受字母数字和一些特殊字符的正则表达式? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个像这样的 Javascript 正则表达式 x00 x7F 我想修改这个正则表达式 以便它接受所有大写和非大写字母 所有数字和一些
  • 使用 awk 或 sed 不可能进行负向前瞻,但仅 Perl 支持

    我有跨多行的文本 someabove text jpqpq mcvnmcv s ql pw lt lt lt lt lt lt uyuuey middle text jhasjh dsadsas grqywtrt klklk lt lt l
  • 什么是Environment.FailFast?

    什么是Environment FailFast 它有什么用 它用于终止应用程序 它是一种静态方法 可以立即终止应用程序 而不会被任何异常块捕获 Environment FastFail String 可以 实际上是一个很棒的调试工具 例如
  • 同一视图控制器中的 AWS AppSync 多个订阅不起作用 - iOS Swift

    仅供参考我发布了这个问题在 AWS AppSync 论坛中 以防将来 AWS 回答它 我一直在尝试制作一个简单的帖子应用程序 例如docs https docs aws amazon com appsync latest devguide