PubNub 长轮询与套接字 - 移动电池寿命

2024-01-11

我最近开始在我的 iOS 应用程序中使用 PubNub,并且对此非常满意。不过,我一直在研究其他可用的选项,例如使用 Websockets 的 Pusher 和 Realtime.co。另一方面,PubNub 使用长轮询。我自己做了一些速度比较,出于我的目的,我发现它们都足够快。

PubNub 提供了一些不错的功能,例如消息历史记录和频道中每个人的列表,因此除了其他一切之外,我倾向于使用它们。我的问题是,我是否应该担心像 PubNub 这样的长轮询解决方案的电池寿命和频繁使用? Websockets 解决方案是否会显着提高能效?


移动设备上的 PubNub 具有省电功能

作为电池性能和效率的前言,与替代或自托管 Websocket 解决方案相比,PubNub 是一种针对移动移动设备的优化服务。 PubNub 在手机上提供了一项追赶功能,可以自动重新发送错过的消息,特别是对于在蜂窝网络塔之间移动以及从 3G/4G 更改为 WiFi 的设备。由于常见场景中的可靠性,Websocket 往往不推荐用于移动设备,这就是为什么 PubNub 会自动为您的设备选择最佳传输方式;因此您不必决定什么对运输途中的手机最有意义。

PubNub 的电池节省模式

PubNub 的保持活动连接时间非常长,设置为一小时。每 300 秒(300,000 毫秒)发送一次 ping。这个时间足以提供移动性能和电池节省之间的最佳组合。

手机省电技巧

  1. 保持消息尽可能小。
  2. 发送较少的消息,频率较低。
  3. 仅连接到一个通道,而不是两个或多个。

自动运输检测

PubNub 将在需要时自动为您选择最佳的传输方式,尤其是在mobile设备。 2012 年 10 月,在俄勒冈州波特兰市的 KRTConf 上,我向您推荐了一次关于 Websocket 的有趣对话https://speakerdeck.com/3rdeden/realtimeconf-dot-oct-dot-2012 https://speakerdeck.com/3rdeden/realtimeconf-dot-oct-dot-2012

让我知道这是否有帮助。

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

PubNub 长轮询与套接字 - 移动电池寿命 的相关文章

  • 尝试注册 RCTBridgeModule 类 RCTFileReaderModule

    尝试为名称 FileReaderModule 注册 RCTBridgeModule 类 RCTFileReaderModule 但该名称已由类 FileReaderModule 注册 尝试使用命令react native run ios在i
  • Swift - 将图像插入 PDF 不再适用于 iOS 13

    目前正在开发在我的贷款计算器应用程序上导出 PDF 的功能 我有一个预览屏幕 可以在您保存 PDF 之前显示它 预览屏幕由带有 html 的 webView 组成 其中包含占位符 我能够成功地将图像插入到正确的占位符上 并将其显示在 PDF
  • 禁用 iPhone 4S / 新 iPad 键盘上的听写按钮

    我们的应用程序是一个医疗保健应用程序 我们的应用程序中有一个符合 HIPAA 标准的语音识别器 所有听写都可以通过它进行 医院不希望医生意外开始与不符合 HIPAA 标准的 Nuance Dragon 服务器进行对话 因此 我正在寻找可以抑
  • 是否可以在增强现实应用程序中使用自定义 iOS UI 元素(例如 UILabel)

    我想知道是否可以使用像这样的 UI 元素UIButton UILabel在带有 ARKit 的增强现实应用程序中 如果您也对 UIView 子类的透明度模式感兴趣 请尝试我的示例https github com erikhric ar me
  • Android - API 请求

    我开发了一个应用程序 它也在 iPhone 上 问题出在 api 请求上 我为所有请求设置了超时 有时会出现 30 60 秒的中断 看起来这个应用程序执行了几个请求 然后就中断了 一直超时 大约 45 秒后一切正常 不知道是服务器问题还是安
  • skView.ignoreSiblingOrder 在 swift 中的重要性/效率?

    这样做有多重要 高效skView ignoreSiblingOrder true初始化场景时 现在 我将其设置为 true 但由于某种原因 当我从 MainMenu 场景启动 GameScene 时 它 会在我的角色之前加载背景 即使背景的
  • 删除具有estimatedItemSize 的项目时 UICollectionView 单元格大小会调整

    我有一个简单的项目 其中的故事板仅包含一个UICollectionViewController 使用 Xcode 7 1 1 为 iOS 9 1 构建 class ViewController UICollectionViewControl
  • 检查系统时间是自动还是用户设置

    我需要在当前的项目中设置用户证明时间 我围绕这个问题发现了很多不同的问题 但似乎没有一个问题有我正在寻找的答案 这些是我到目前为止看过的问题 XCODE 如何从设备获取 验证准确的时间戳 https stackoverflow com qu
  • 如何从 iOS 应用程序检测不安全的 wifi 网络

    我想检测我的应用程序中是否存在不安全的 wifi 网络 是否有任何公共 iOS API 可以实现相同的目的 没有记录的 API 可以获取该信息 如果您的应用程序需要通过网络发送和接收敏感数据 您通常应该假设没有安全连接
  • 如何从日期中获取小时、分钟和上午/下午? [复制]

    这个问题在这里已经有答案了 我尝试从日期中提取小时 分钟和上午 下午 但我得到 NULL 输出 我在下面显示了我的代码 请查看 NSString dateStr 29 07 2013 02 00am NSDateFormatter form
  • 如何更改便携式 xamarin ios 项目中的启动屏幕?

    我正在使用便携式 xamarin 形式 其中项目是 IOS 项目 在 IOS 项目中 我想创建闪屏 我在 ios 项目属性中添加了 Iphone 启动图像和 iPad 启动图像 当我运行该应用程序时 它显示默认的启动屏幕 我还尝试从 inf
  • iOS 11 浮动 TableView 标题

    有一个应用程序包含多个部分 展开 时每个部分有几行 折叠 时没有 每个部分都有一个部分标题 使用以下子类重用它们UITableViewHeaderFooterView等等 到目前为止一切顺利 然后在 iOS 11 中 我使用了可视化调试器
  • NSDateFormatter:根据 currentLocale 的日期,不包含年份

    这不会太难吧 我想显示不带年份的日期 例如 8 月 2 日 美国 或 02 08 德国 它也必须适用于许多其他语言环境 到目前为止 我唯一的想法是对年份进行正常格式 然后从生成的字符串中删除年份部分 我认为你需要看一下 NSString d
  • 将语音添加到自定义 UIMenuController

    我创建了一个自定义UIMenuController in a UIWebView但它似乎摆脱了 说出选择 选项UIMenuController在那之后 所有测试设备上的 偏好设置 中都打开了发言选择选项 并且它出现在其他应用程序中 包括非
  • 如何获取 UITableView 中的所有单元格

    假设我有一个包含多行的 UITableView 我想在某个时间点将所有 UITableViewCells 作为 NSArray 获取 我努力了 tableView visibleCells 但这种方法有一个问题 我无法拥有当前不在当前屏幕中
  • 我如何从 iPhone 设备获取电子邮件历史记录..?

    friends 我想从我的 iPhone 访问电子邮件历史记录 并且还希望在收到新邮件时收到通知 如果可能的话 请向我提供源代码片段 Thanks 简而言之 使用任何已记录的 API 都是不可能的
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 由于 2.23 导致 iOS 应用程序被拒绝 - iOS 数据存储指南

    以下是 Apple 关于拒绝的消息 2 23 应用程序必须遵循 iOS 数据存储指南 否则将被拒绝 2 23 详情 在启动和内容下载时 您的应用程序会存储 6 5 MB 这并不意味着 遵守 iOS 数据存储指南 下一步 请验证只有用户使用您
  • 快速钥匙串更新只有在第二次尝试时才起作用

    您好 我在更新存储在钥匙串中的登录信息方面遇到了 iOS 钥匙串的一个非常奇怪的问题 因此 如果没有保存的凭据 则正确运行保存函数会保存登录信息 如果登录信息已存在并且用户更新了密码 则更新功能仅正确更新密码 但是 如果登录信息存在并且我尝
  • 使用 UItableViewCell 类型的表达式初始化“CustomCellView *”的指针类型不兼容

    你能帮我理解和 修复下面的错误吗 我不明白CustomCellView是一个子类UItableViewCell 代码已编译 但警告仍然存在 Incompatible pointer type initializing CustomCellV

随机推荐

  • 如何将 DataGridViewComboBoxColumn 绑定到返回列表的对象的属性/方法?

    我有一个具有多个属性的自定义对象 其中一个属性返回一个列表 这是该对象的代码 public class SearchResult private int eventId private String eventTitle private i
  • 在子域上安装 GitLab

    我正在尝试在子域上安装 GitLab 我对网络服务器之类的东西不是很熟悉 知识很少 我目前通过以下方式连接到子域ssh email protected cdn cgi l email protection在 Mac 的终端上 然后我ls到子
  • 如何中断 Hover 的 handlerOut

    我有以下情况 我有一个对象 我们称之为 按钮 当您将鼠标悬停在 按钮 上时 它会使另一个对象 信息 向下滑动 当然 当你的鼠标离开Button时 Info就会向上滑动并消失 但是 Info 有一个链接 用户可能想要单击它 我可以延迟信息向上
  • 2 个向量的样本协方差

    我正在尝试计算这两个向量之间的样本协方差 我定义了一个带有两个输入变量的函数 不知道是否正确 我的样本协方差公式也无法运行 谁能帮我用R写出来 xv c 1 5 5 7 8 4 2 2 7 5 4 8 9 yv c 0 1 1 5 0 8
  • Android 2.0:支持Actionbar库(appcompat v7支持库无资源):找不到资源@style/Theme.AppCompat.Light.DarkActionBar

    我跟着http developer android com guide topics ui actionbar html http developer android com guide topics ui actionbar html在
  • Python OrderedDict 与 dict() 比较

    这件事让我完全困惑不解 asset hist for key host val hist list in am output asset history items for index hist item in enumerate val
  • Gist (gist.el / Emacs) -- 在创建时设置“描述”

    默认行为gist region就是离开描述空白的 要设置描述 需要切换到gist list缓冲然后使用该函数gist edit current description设置描述 我希望能够设置描述在创建要点的同时 无需切换到gist list
  • php-ffmpeg 获取视频时长

    当我尝试使用 php ffmpeg 包装器和 ffprobe 获取视频的持续时间时 我得到一个巨大的对象 而不仅仅是持续时间 ffprobe FFMpeg FFProbe create ffprobe gt format this gt v
  • WebClient 下载文件已损坏

    我正在尝试使用 C WebClient 下载文件 这是网址 http www czce com cn cn DFSStaticFiles Future 2018 20180821 FutureDataClearParams txt http
  • 如何使用 CSS 网格布局在 CSS 中制作固定列?

    我制作了一个简单的网站 containerdiv 是两个 div 的父级 left and right 通过使用网格布局 https developer mozilla org en US docs Web CSS CSS Grid Lay
  • 为什么需要目标网络?

    我想了解为什么 DQN 中需要目标网络 我正在阅读有关 通过深度强化学习实现人类水平控制 的论文 我了解 Q learning Q learning 是一种基于价值的强化学习算法 它学习状态 动作之间的 最佳 概率分布 从而在一系列时间步长
  • 带有按钮和输入的弹出框 HTML 内容未呈现[重复]

    这个问题在这里已经有答案了 我正在尝试向弹出窗口添加按钮 但它似乎没有呈现 是像我那样做的还是有更好的方法 myinput popover trigger focus container body placement bottom html
  • 将数据库引用传递到路由中不适用于我的 Node / Express 项目

    我正在使用 Node Express 创建一个简单的 REST API 并尝试将路由逻辑与数据库逻辑分开 我在从路线访问数据库时遇到问题 这是我的 server js 代码 var express require express path
  • AngularJS 中的 ExpressJS 变量 - Mean Stack

    我正在构建一个 MEAN 应用程序 我遇到的一个问题是我想让我的用户对所使用的路由进行某种控制 所以我希望我的服务器端代码 expressJS 在我的客户端代码中设置一些变量 本质上 我希望能够从服务器端代码生成客户端 JS 例如 在 PH
  • 附件损坏签名第 2 部分

    我创建了将图像添加到现有 pdf 文档然后对其进行签名的代码 所有这些都使用 PDFBox 请参阅下面的代码 该代码很好地添加了图像和签名 但是 在某些文档中 Acrobat Reader 抱怨 签名字节范围无效 该问题似乎与中描述的问题相
  • 如何与多个翻译单元共享一个静态变量?

    我想将数组设为静态 并且还想在其他翻译单元中引用它 然后我将其定义为static int array 100 并在其他翻译单元中将其声明为extern int array 但是编译器告诉我 static 和 extern 的存储类相互冲突
  • shell 脚本中的 AWK - 如何根据共享密钥(2 个公共字段)比较和合并两个文件?

    有人可以帮忙比较两个文件吗 我已经使用了下面的命令 但我无法成功 awk F NR FNR a 1 2 下一个 1 2 in a temp1 dat temp2 dat 这是我的需要 需要比较以下两个 dat 文件中的前两个字段 并将结果按
  • Eclipse 插件无法与 GlassFish 服务器通信

    我需要在我们当前正在 Eclipse IDE 中处理的项目中使用 Glassfish 我的问题是在 Eclipse 中安装 Glassfish Tools 后 我设法在 SERVERS 选项卡中正确创建一个新的 glassfish 服务器
  • 为什么 getline 函数不能在具有结构数组的 for 循环中多次工作? [复制]

    这个问题在这里已经有答案了 我有一个小问题 我创建了一个程序 要求用户输入四个不同零件的零件名称和零件价格 每个名称和价格都填充一个结构 我有一个由四个结构组成的数组 当我执行 for 循环来填充所有名称和价格时 我的 getline 函数
  • PubNub 长轮询与套接字 - 移动电池寿命

    我最近开始在我的 iOS 应用程序中使用 PubNub 并且对此非常满意 不过 我一直在研究其他可用的选项 例如使用 Websockets 的 Pusher 和 Realtime co 另一方面 PubNub 使用长轮询 我自己做了一些速度