2016-06-14 8 views
1

私は成功していないローカルサーバーに接続しようとしています。次のように私のコードがある - 「TRYING DONE」と「接続しよう」Swift Starscream websocket podロー​​カルサーバーに接続していて、代理人のメソッドがありません。

class SocketManager: NSObject, WebSocketDelegate { 
    var socket: WebSocket! 

    override init() { 
     super.init() 

     self.socket = WebSocket(url: NSURL(string: "ws://localhost:9292/")!) 
     self.socket.delegate = self 
     print("TRYING TO CONNECT") 
     self.socket.connect() 
     print("DONE TRYING") 
    } 

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

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

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

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

    func websocketDidReceivePong(socket: WebSocket) { 
     print("Got pong!") 
    } 
} 

両方print文をログに存在しているが、デリゲートメソッドのどれも呼ばれているように見えるん。

ここで何が間違っているのかよくわかりません。

何か助けていただければ幸いです。

+0

これまでにこれを解決しましたか、私は同じことを見ています。 – RickR

+0

私はこの問題の回答を投稿しました。 – Dwijen

答えて

0

問題は、AppDelegateにクラスSocketManagerのインスタンスを作成していて、その変数が範囲外になっていたことです。

この問題を解決するために、私はAppDelegateにインスタンス変数を作成しました。その後、デリゲートメソッドが期待通りに呼び出されています。

ここに、Githubレポに投稿した問題へのリンクがあります。

https://github.com/daltoniam/Starscream/issues/203

はそれがお役に立てば幸いです。

関連する問題