![](/img/trans.png)
[英]How to keep XMPP connection alive in the IOS App when app in background?
[英]Keep iOS App alive to work with MQTT protocol
對於一個項目,我需要許多客戶訂閱不同的硬件設備。 在此設置中,客戶端是iOS - 設備。 硬件就像一個覆盆子pi,但我不認為這很重要。 如果硬件設備測量某種信息,則它會發送信號。 這是一種罕見的事件,可能永遠不會發生。
應用程序的目的是在某些事件出現在他感興趣的位置時警告用戶。
我計划使用MQTT協議實現這一點。
這就是我的問題所在。 要使用MQTT,即使應用程序處於后台,應用程序也需要每隔幾分鍾發送一次PINGREQ。 該應用程序還需要接收其訂閱並立即處理它們。
這就是我打算做的事情:
..描述這里
我的問題是:Apple會允許嗎? 我的應用程序不是VoIP應用程序。 如果不是,這種方法還有其他選擇嗎?
如果Apple策略不允許您在后台運行MQTT客戶端應用程序,那么解決方案應該是實現額外的推送服務。
推送服務訂閱您的MQTT代理並向您的移動設備發送推送通知,以便他們運行或不運行MQTT客戶端應用程序,他們將獲得事件。
是! 當您使用VOIP時(即使您的應用程序不是VOIP應用程序),蘋果有可能拒絕您的應用程序,以保持應用程序的活力! 我正在使用位置服務,這是一種在后台模式下保持應用程序活躍的正確解決方案。
即使應用程序處於后台模式並且在獲得允許回撥后,請求權限使用位置服務,將您的位置管理器所需的准確度設置為最差,距離過濾器為99999(意味着如果用戶距離超過99999米,您的應用程序將會收到通知最后的位置更新回電)
通過改變所需的精度和距離濾波器,您可以節省用戶的電池消耗,否則您的應用程序將消耗大量能源
這是一種使您的應用程序在后台連續運行超過2天的正確方法(已在我們的項目中使用)。
HTH! 在編碼中玩得開心:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.