MQTTとの接続はGLOBAL_QUEUE_PRIORITY_HIGH
で行います。これは正しいです?私のUIは応答するのに時間がかかるからです。GLOBAL_QUEUE_PRIORITY_DEFAULTはUIレスポンスを停止します
dispatch_async(dispatch_get_global_queue(GLOBAL_QUEUE_PRIORITY_HIGH,0),{
guard self.session != nil else {
fatalError("Could not create MQTTSession")
}
let transportSocket:MQTTCFSocketTransport = MQTTCFSocketTransport()
transportSocket.host = MQTT_HOST;
transportSocket.port = MQTT_PORT;
self.session!.transport = transportSocket
self.session!.delegate = self
self.session!.userName = token
self.session!.password = userId
self.session!.keepAliveInterval = 300
self.session!.cleanSessionFlag = false
self.connect()
})
メインスレッドとは別にしたい。それが私がやった理由です。これが正しいかどうか教えてください。
私は非常に深いMQTTFrameworkにいないけど、私はそのテストクラスで見たことはある:MQTTSessionは、同期または非同期に実行されていることであるあなたは非同期にそれを設定することができます。私はそれが重要ではないと確信しています。メインキューで実行されていないのであれば、それは重要です。https://github.com/ckrey/MQTT-Client-Framework/blob/master/MQTTClient/MQTTClient/MQTTSession.m Line 45 @property(nonatomic)BOOL synchronousConnect; – Lepidopteron