2017-12-07 6 views
0

wssでMQTTに接続するにはどうすればいいですか? - 私はCocoaMQTTを使用して、次のコードで、MQTTサービスに接続しようとして

let clientID = "CocoaMQTT-" + String(ProcessInfo().processIdentifier) 
    //This is myHost: wss://myserver.test:9001 
    let mqtt = CocoaMQTT(clie.ntID: clientID, host: "myserver.test", port: 9001) 
    mqtt.keepAlive = 10000 
    mqtt.username = "username" 
    mqtt.password = "password" 
    mqtt.enableSSL = true 
    mqtt.delegate = self 
    mqtt.connect() 
    mqtt.autoReconnect = true 

私はエラーを取得する:エラードメイン= GCDAsyncSocketErrorDomainコード= 7「ソケットは、リモートピアによって閉じ」のUserInfo = { NSLocalizedDescription =リモートピアによって閉じられたソケット}

CocoaMQTTはwssまたはtcpだけをサポートしていますか?サポートされていない場合は、迅速に他のクライアントがありますか?

+0

これは自己署名入りの証明書の問題に関連する可能性がありますか? – pan

+0

私は@panと思っていません。ユーザーとパスワードのみが必要です。 –

答えて

0

これはCocoaMQTTの例です。多分それは助けます。

let clientID = "CocoaMQTT-\(animal!)-" + String(ProcessInfo().processIdentifier) 
    mqtt = CocoaMQTT(clientID: clientID, host: "127.0.0.1", port: 8883) 
    mqtt!.username = "" 
    mqtt!.password = "" 
    mqtt!.willMessage = CocoaMQTTWill(topic: "/will", message: "dieout") 
    mqtt!.keepAlive = 60 
    mqtt!.delegate = self 
    mqtt!.enableSSL = true 

    let clientCertArray = getClientCertFromP12File(certName: "client-keycert", certPassword: "MySecretPassword") 

    var sslSettings: [String: NSObject] = [:] 
    sslSettings[GCDAsyncSocketManuallyEvaluateTrust as String] = NSNumber(value: true) 
    sslSettings[kCFStreamSSLCertificates as String] = clientCertArray 

    mqtt!.sslSettings = sslSettings 
+0

ブローカに接続するための証明書が必要ありません。私はMQTT-Client-Frameworkに接続する方法を見つけました。しかし、ありがとう –

関連する問題