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

iphone - 如何在后台保持 iphone ios xmpp 连接处于事件状态?

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

适用于 iPhone 的 XMPPFramework 功能强大。我已经启动并运行了它,但是你如何在后台保持连接超过 10 分钟?我将不胜感激有关如何完成此操作的更多文档/操作方法。

所以用例简单而常见:Joe 在线并在 iPhone 聊天应用程序中。他离开聊天应用程序,去 Safari,玩游戏,看电影,做其他事情 3 小时(或更长时间)。乔想在那段时间继续接收消息。

示例应用程序允许 Joe 在后台接收本地通知,但似乎只有 10 分钟。这是相关的代码(我认为)。谢谢!

为了帮助其他人,甚至达到这一点,您需要将 xmppstream 属性 enableBackgroundingSocket 设置为 YES(它在您应该复制的 iphoneXMPP 示例项目中为您完成)和 appname-info.plist(即, iosChat-info-plist) 文件,您需要添加一个新的键/值对。您应该右键单击某处并“添加行”。您应该选择键“所需的背景模式”,然后输入“voip”。 Xcode 会在您按下回车后检测到您的意思是“App 提供 Voice over IP 服务”。这让你有 10 分钟的时间让聊天应用程序在后台保持打开状态(我认为)。但是我们想要无限期,我怀疑答案就在下面的方法中。我只是应该在这个方法中“重新连接”还是什么,例如,[self connect](我有一个连接方法)?

- (void)applicationDidEnterBackgroundUIApplication *)application{

DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);

if ([application respondsToSelectorselector(setKeepAliveTimeout:handler]) 
{
    [application setKeepAliveTimeout:600 handler:^{

        DDLogVerbose(@"KeepAliveHandler");

        // Do other keep alive stuff here.
    }];
}}



Best Answer-推荐答案


10 分钟是 iOS 允许您保持连接的大致时间。你可以 另请查看 [app beginBackgroundTaskWithExpirationHandler],这将允许您 请求更多时间来完成一项任务。为了保持 100% 的连接,您将 需要向 info.plist(即 UIBackgroundModes)添加 voip、音频或位置标签。

除非您添加这些标签之一,否则背景将不起作用。另外,添加标签 将允许您保持连接,但如果您提交到 App Store,实际标签必须有效。如果没有真正的用例,Apple 将拒绝该应用程序。

要在没有标签的情况下保持更长时间的连接,您将需要使用某种类型的服务器,该服务器会维持连接,然后使用推送通知来传递消息。

关于iphone - 如何在后台保持 iphone ios xmpp 连接处于事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261135/

回复

使用道具 举报

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

本版积分规则

关注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