2016-04-22 20 views
1

私は、Androidデバイスにソケット経由で接続するSwiftを使ってiOSアプリケーションを開発しています。私はStarscreamを実装し、他のデバイスに接続することができました。私の問題は、websocketDidConnectデリゲートメソッドで何かを印刷すると印刷されないということです。また、socket.isConnectedを印刷すると、falseを出力します。親切に私を助けてください。ありがとう。 Starscreamの他の選択肢も歓迎です、ありがとう!あなたはそれがviewDidLoadメソッドの外に出るとそうでない場合がリリースされるクラスのプロパティとしてそれを作るために必要Starscreamのsocket.isConnectedは常にfalseを返す

import Starscream 
    class SettingsViewController: UIViewController, UITextFieldDelegate, WebSocketDelegate{ 

    override func viewDidLoad() { 
      super.viewDidLoad() 

     let socket = WebSocket(url: NSURL(string: "ws://\(ipAddressTextField.text!):4000/")!) 
     socket.connect() 

     print("socket.isConnected \(socket.isConnected)") //this one is false 

     socket.onConnect = { 
      print("Connected...") // does not print 
     } 

     socket.onDisconnect = { (error: NSError?) in 
      print("websocket is disconnected: \(error?.localizedDescription)") // this one prints when I turn the wifi off 
     } 

     socket.onData = { (data: NSData) in 
      print("got some data: \(data.length)") 

     } 

    } 

func websocketDidConnect(ws: WebSocket) { 
    print("websocket is connected") 
} 

func websocketDidDisconnect(ws: WebSocket, error: NSError?) { 
    if let e = error { 
     print("websocket is disconnected: \(e.localizedDescription)") 
    } else { 
     print("websocket disconnected") 
    } 
} 

func websocketDidReceiveMessage(ws: WebSocket, text: String) { 
    print("Received text: \(text)") 
} 

func websocketDidReceiveData(ws: WebSocket, data: NSData) { 
    print("Received data: \(data.length)") 
} 

} 

答えて

0

は、ここに私のコードです。

関連する問題