2017-04-26 94 views
1

我正在爲Swift 3開發iOS應用程序,此應用程序使用Bonjour服務搜索本地網絡中的某些使用特定服務的機器人,例如robot.local並顯示他們在一個列表中。 Bonjour服務給了我設備的領域。這是搜索的域的一個例子。當連接Rosbridge(網絡套接字)時出錯

例:

  • robot1.local

  • robot2.local

下一步,是當用戶點擊列表的元素。此操作通過網絡套接字與設備啓動連接,並將其與Iphone進行連接以控制它。我正在使用名爲RBManager的庫,它使用RocketSocket庫進行連接。這個庫可以幫助我連接到RosBridge。

我用這個代碼連接:

NSURLRequest * request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"wss://192.168.0.100:9090"]]; 
self.socket = [[SRWebSocket alloc] initWithURLRequest:request]; 
self.socket.delegate = self; 
[self.socket open]; 

問題是,當我安裝的Xcode中應用程序,我沒有任何問題,但是當我通過IPA文件或TestFlight安裝應用程序連接被拒絕,並顯示以下錯誤:

managerDidFailWithError Optional(ErrorDomain=NSOSTatusErrorDomain Code=-9807 "(null)" UserInfo={_kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9807})

我發現這個issue在庫中,但不是我需要的解決方案。

我在info.plist中是deactive ATS,但我不知道如何解決這個錯誤。任何人都可以幫我嗎?

info.plist

回答

0

我發現這個問題。問題在於我的RosBridge後端以TLS運行,而我沒有實現它。

該解決方案是在客戶端實施身份驗證和所有工作:D

+0

歡迎來到SO。請閱讀此[如何回答](http://stackoverflow.com/help/how-to-answer)以提供高質量的答案。 – thewaywewere