从服务器实时更新的 iOS 应用程序:Socket(使用流)还是 Apple 推送通知服务?

2024-06-26

我正在尝试制作一个 iOS 5 应用程序,该应用程序具有来自服务器的实时信息。它只会在应用程序运行时使用这些。

为了使其实时且无需轮询,我一直在评估两种设计路线:


创建从应用程序到服务器的套接字,并通过流交换信息。

  • Pros:相对简单,不涉及第三方。
  • Cons:电池寿命耗尽。
  • 有关其工作原理的概述,请检查 出这个优秀的教程:http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server

使用标准 HTTP 与服务器通信,并且应用程序发出的每个请求都让服务器知道他们正在查看的内容。如果有新内容可供用户使用,请发送 Apple 推送通知(没有可见警报),让应用程序知道它可以去下载新内容。

  • Pros:不打开新的 TCP 连接,因此不会不必要地耗尽电池寿命。
  • Cons:感觉就像一个糟糕的黑客。
  • APN 的官方文档http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html


我认为套接字是可行的方法,但在我做出决定之前,我想要第二个意见,因为这是我第一次制作这样的东西!


插座将是我的选择。我不知道您的应用程序对时间的要求有多高,但如果必须实时,套接字可能会像 APN 那样表现得更好。

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

从服务器实时更新的 iOS 应用程序:Socket(使用流)还是 Apple 推送通知服务? 的相关文章

  • 视频录制时如何接收字节

    我正在开发iPhone视频应用程序 因为我想在用户录制视频本身时占用磁盘中的字节 void imagePickerController UIImagePickerController picker didFinishPickingMedia
  • iOS 7 UIBarButtonItem 字体在点击时发生变化

    我正在尝试改变我的UIBarButtonItem字体 ViewController 加载时看起来不错 但是 如果我点击栏按钮 或者向右滑动 就像移动到上一个 ViewController 但然后拉回到当前的 ViewController 字
  • 解析 URL 字符串以获取键值的最佳方法?

    我需要解析一个 URL 字符串 如下所示 ad eurl http www youtube com video 4bL4FI1Gz6s hl it IT iv logging level 3 ad flags 0 endscreen mod
  • Xcode 8 - 丢失文件警告

    自从使用 Swift 2 3 升级到 Xcode 8 我有几个丢失文件的警告 它们都与我正在使用的 pod 有关 丢失的文件是 xcscheme cpp xcuserstate swift 显示丢失文件的 pod 是 领域 38 43 Te
  • ios中的过滤器数组检查多个属性

    我有一系列自定义对象 自定义对象看起来像这样 interface User NSObject property nonatomic strong NSString user Id property nonatomic strong NSSt
  • 如何存储和访问 Twitter Fabric 登录会话 (iOS/Swift)?

    我可以使用以下 Twitter Fabric 代码通过我的应用程序登录 Twitter let logInButton TWTRLogInButton logInCompletion session TWTRSession error NS
  • 在 Xcode Beta 中分发构建时“IPA 处理失败”

    在尝试分发 IPA 时 Xcode 抛出错误 IPA 处理失败 Steps 产品 gt 存档 gt 分发 gt 企业 开发 gt IPA 处理失败 Xcode Version 11 0 beta 3 11M362v OS 10 15 Bet
  • 如何在iOS中将底部安全区域设置为XIB?

    我想打开自定义弹出视图 在 XIB 中设计 它从底部显示 但现在在 iPhoneX 模拟器中 它从屏幕底部显示 我想在安全区域打开弹出窗口 iPhone X 的结果 并且 XIB 布局有约束 简单来说解决方案 使用超级视图删除底部约束并将其
  • 用于 iOS 搜索的 Facebook Graph API

    我尝试使用以下代码从 Graph API 中搜索地点 但没有成功 有人可以启发我的道路吗 如果我尝试发布链接 消息 照片 它会按预期工作 但是当尝试获取位置时 它总是失败并给我 The operation couldn t be compl
  • iPhone IOS5 Storyboard,如何使用自定义的 .xib 文件加载 UIViewController?

    我有一些来自旧 iOS4 项目的 UIViewController 它们使用的是在界面生成器中创建的 xib 我的新项目是为 iOS5 构建的 使用故事板 我正在尝试将 UIViewController 添加到故事板 但让它使用我已经拥有的
  • 在单个 FCM 请求中具有 Android 的数据消息和 IOS 的正常通知

    目前 我有不同的方式来处理通知 具体取决于系统是 Android 还是 IOS 对于 Android 我发送纯数据通知并从中创建本地通知 对于 IOS 由于纯数据通知不能保证在应用程序关闭时能够检索到它们 因此我发送普通通知 我想要做的是使
  • 将警报视图“是”按钮设置为粗体,将“否”按钮设置为正常

    我有警报视图 其中有 是 和 否 选项 看起来像下面这样 使用的代码是 UIAlertView confAl UIAlertView alloc initWithTitle message Are you sure delegate sel
  • iOS Facebook SDK 通过图搜索来搜索用户

    我是图形搜索新手 我想搜索具有电子邮件地址的用户 那可能吗 现在 我只知道如何使用他们的名字进行搜索 如下所示 https graph facebook com search q chandler de angelis type user
  • ios - 安排无限数量的本地通知

    我有一个应用程序 允许用户创建重复事件 每一个事件在一天中的特定时间可能有也可能没有提醒 警报 如果有的话 应用程序会发送一个本地通知在一天中的那个时候 事件存储在CoreData Event name Go to London date
  • 设置视图控制器根视图的外观代理

    使用 UIAppearance 时是否可以仅针对视图控制器的根视图 我想从我的应用程序委托中为所有控制器设置背景颜色 但只想定位视图控制器上的直接视图 谢谢 详细来说 每个 UIViewController 子类都有自己的 UIView 对
  • 在 SpriteKit 中,touchesBegan 是否与 SKScene 更新方法在同一线程中运行?

    在 Apple 文档中高级场景处理 https developer apple com library ios documentation GraphicsAnimation Conceptual SpriteKit PG Actions
  • 使用文本编辑器避免在 SwiftUI 中使用键盘

    我正在尝试重新创建 iOS 笔记应用程序的简单版本 请注意 我是一个十足的 Swift 新手 我当前的问题是我希望我的视图在键盘出现时向上移动 我已经实现了一些代码does这样做 但它有一些讨厌的错误 它首先将视图移动得太高 然后当您开始打
  • 将渐变应用于 UIImage - 如何消除颜色反转?

    我正在应用渐变UIImage 我希望它底部是黑色的 中间慢慢变成透明或浅灰色 基本上没问题 但我有一个问题 在这个渐变下 我的图像颜色在某些地方反转 这看起来很烦人 我该如何解决这个问题 为了您方便 我的方法如下 我尝试过选择不同的混合模式
  • 如何组合两个可变数组?

    我有一个 iPhone 应用程序 我试图在其中添加两个可变数组 NSMutableArray dataArray NSMutableArray alloc init NSMutableArray dataArray1 NSMutableAr
  • AVAssetWriter 不适用于音频

    我正在尝试让音频与 iOS 应用程序的视频一起使用 视频很好 文件中没有录制任何音频 我的 iPhone 扬声器可以工作 这是初始化设置 session AVCaptureSession alloc init menu gt session

随机推荐

  • Android 使用键盘上的“完成”按钮来单击按钮

    好的 在我的应用程序中 我有一个供用户输入数字的字段 我已将该字段设置为仅接受数字 当用户单击该字段时 它会弹出键盘 键盘 ICS 上 上有一个完成按钮 我希望键盘上的完成按钮能够触发我的应用程序中的提交按钮 我的代码如下 package
  • Entity Framework 5 Code First - 如何“重新开始”?

    我一直在我的应用程序中成功使用 EF 5 Code First 我大约有40张桌子 但是 我遇到了一个问题 我似乎可以正确处理迁移 所以 我想做的就是以某种方式告诉 EF 将数据库的当前模式视为一个新的起点 并从这个点开始管理它 这样 我可
  • 检查输出是否重定向

    我有一个用 C 编写的控制台应用程序 它处理一些数据然后打印结果 在结果可用之前 会有一个小动画 和不断更新的进度百分比 xx 显然 如果用户重定向我的应用程序的输出 这将被打印到输出重定向到的文本文件中 如果可能的话我想避免这种情况 那么
  • C++ 17 编译器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有可以运行 C 17 代码的在线地方 因为我想学习新功能 https github com Anth
  • R 中具有 NA 值的聚合栅格

    我在 R 中有一个分辨率为 1 公里的栅格 其 NA 值分布广泛 但位置不规则 即 包含数据的单元格不连续 并且 NA 值分散 我正在尝试使用用户定义的平均圆角函数 包括在下面 以 5 公里分辨率 因子 5 聚合此栅格 使用 raster
  • “代理人没有身份”是什么意思?

    我成功关注了这些说明 https help github com articles generating ssh keys 来自 GitHub 关于如何生成 SSH 密钥的信息 我与 GitHub 的连接成功 但是当我稍后想检查我的 SSH
  • 将互操作颜色转换为 System.Drawing.Color

    我正在寻找如何在 C 中将 Microsoft Office Interop Word Excel PowerPoint Color 转换为 System Drawing Color 我在这个论坛发现了相反的情况here https sta
  • 椭圆形留下痕迹

    我正在尝试制作一个简单的球动画 从面板的一个角开始到另一个角 我为此编写了一个程序 当我运行程序时oval or ball留下踪迹 我的意思是说 当程序运行时 它会留下 颜色痕迹 在我的程序中timer每 100 毫秒触发一个事件 以下是负
  • “伊甸园空间”的名字起源于垃圾收集

    在垃圾收集术语中 为什么它被称为 伊甸园空间 就这样 我还在熟悉这个术语 我不明白为什么它有这样的名字 伊甸园空间是创建对象的地方 他们的生活都很幸福 但最终他们被小天使赶到了年轻一代和老一代的荒野中 他们永远不会被允许回到伊甸园空间 他们
  • Python中Shift和Caps Lock的状态

    我正在使用 Python 2 5 编写 TkInter 应用程序 我需要找出大写锁定和 Shift 键的状态 true 或 false 我在整个网络上进行了搜索 但找不到解决方案 Tkinter 中的键盘事件可能很棘手 我建议您按顺序查看以
  • 在 python 中更改函数的 __qualname__ 时会发生什么?

    为了能够pickle嵌套函数 用于多重处理 我用装饰器装饰了嵌套函数 def globalize one func def wrapper one args kwargs return func args kwargs setattr mo
  • Window Defender 想要重置您的设置”-ChromeDriver 2.29 问题:Chrome 浏览器以新选项卡打开

    Chrome Browser open up with a new Tab asking for Window defender wants to reset your setting 请帮我解决这个问题 这发生在 chrome v 57
  • STL容器:构造函数的分配器参数和作用域分配器

    STL 容器有一个模板参数来选择自定义分配器 花了一段时间 但我想我明白它是如何工作的 不知怎的 这并不是很好 因为给定的分配器类型不直接使用 而是反弹到另一种类型的分配器 我终于可以使用它了 读完后API http en cpprefer
  • 有java中公钥加密的教程吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我已经能够找到有关对称加密和散列的信息 但在查找有关 java 的任何类型的公钥加密的大量信息时遇到了
  • 如何通过 SSH 连接到 Docker?

    我想创建以下基础架构流程 使用 Docker 如何实现这一点 首先 您需要在要通过 ssh 访问的映像中安装 SSH 服务器 您可以为所有安装了 ssh 服务器的容器使用基础映像 然后 您只需运行每个容器 将 ssh 端口 默认 22 映射
  • 使用 Electron 打开外部文件

    我有一个正在运行的 Electron 应用程序 到目前为止运行良好 对于上下文 我需要运行 打开一个外部文件 该文件是一个 Go lang 二进制文件 它将执行一些后台任务 基本上它将充当后端并公开 Electron 应用程序将使用的 AP
  • 在时间序列线图上绘制点

    我有这个数据框 我想绘制它的线图 正如我所绘制的 Graph is 生成的代码是 fig ax plt subplots figsize 15 5 date time pd to datetime df Date df df set ind
  • 多对多关系中的 KVO 对象属性

    我有一个核心数据对多关系 由父 gt 子组成 我想设置一个键值观察机制 以便当任何子对象上的属性 例如 firstName lastName 发生更改时 它会触发通知 使用标准 KVO 语法时 self parentObject addOb
  • 数据框应用不接受轴参数

    我有两个数据框 data and rules gt gt gt data gt gt gt rules vendor rule 0 googel 0 google 1 google 1 dell 2 googly 2 macbook 我正在
  • 从服务器实时更新的 iOS 应用程序:Socket(使用流)还是 Apple 推送通知服务?

    我正在尝试制作一个 iOS 5 应用程序 该应用程序具有来自服务器的实时信息 它只会在应用程序运行时使用这些 为了使其实时且无需轮询 我一直在评估两种设计路线 创建从应用程序到服务器的套接字 并通过流交换信息 Pros 相对简单 不涉及第三