2015-02-10 34 views
1

的iOS mosquitto我对发展同libmosquitto如何在后台

iOS应用在我的代码中的一些问题 AppDelegate.swift

import UIKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate, MosquittoClientDelegate{ 

    var window: UIWindow? 
    var client: MosquittoClient? 

    func didPublish(messageId: UInt) { 
     println("didPublish \(messageId)") 
    } 
    func didReceiveMessage(mosq_msg: MosquittoMessage!) { 
     println("didReceiveMessage [ \(mosq_msg.mid)-\(mosq_msg.topic) ] \(mosq_msg.payload)") 
    } 
    func didDisconnect() { 
     println("didDisconnect") 
    } 
    func didConnect(code: UInt) { 
     println("didConnect \(code)") 
     if code == UInt(MOSQ_ERR_SUCCESS.value){ 
      client?.subscribe("sample", withQos: 1) 
     } 
    } 
    func didSubscribe(messageId: UInt, grantedQos qos: [AnyObject]!) { 
     println("didSubscribe") 
    } 
    func didUnsubscribe(messageId: UInt) { 
     println("didUnsubscribe \(messageId)") 
    } 

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {   
     client = MosquittoClient(clientId: "qq") 
     client?.host = "stick.coffee" 
     client?.port = 1883 
     client?.delegate = self 
     client?.connect() 
     return true 
    } 
} 

这工作我觉得当应用程序退出时除外。

即使退出应用程序,我也希望receiveMessage。

我在这里创建了一些背景模式。

  • 音频和AirPlay
  • 位置更新
  • IP语音
  • 报刊下载
  • 外部配件通信
  • 利用蓝牙LE配件
  • 充当蓝牙LE配件
  • 背景取
  • 远程通知

什么是最适合我的模式? 或者有没有这个存根的一些例子?

+0

与您的问题无关,但您能否建议我在哪里可以获得适用于iOS的libmosquitto? 我下载了文件并放入了一个文件夹,但它没有With_TLS标志。 – 2016-02-25 10:25:42

回答

0

是的, 我发现没有方法可用于后台运行。

但是如果不需要上传AppleStore,voip可以在后台运行。

所以我用voip实现。