2016-06-14 4 views
1

Ich habe versucht, eine Verbindung zu einem lokalen Server ohne Erfolg herzustellen. Mein Code ist wie folgt -Swift Starscream websocket pod nicht Herstellen einer Verbindung zum lokalen Server und keine Delegiertenmethoden

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!") 
    } 
} 

Sowohl der Druck Aussagen „Verbindungs“ und „DONE Trying“ sind in dem Protokoll, aber keiner der Delegatmethoden scheinen aufgerufen werden.

Ich bin mir nicht sicher, was hier falsch sein könnte.

Jede Hilfe wird geschätzt.

+0

Haben Sie das jemals gelöst, sehe ich das gleiche. – RickR

+0

Ich habe eine Antwort für das Problem geschrieben, ich hoffe, es hilft. – Dwijen

Antwort

0

Das Problem war, dass ich eine Instanz der Klasse SocketManager in der AppDelegate erstellt und diese Variable fiel außerhalb des Geltungsbereichs.

Um dies zu lösen, habe ich eine Instanzvariable in der AppDelegate erstellt, nach dem die Delegiertenmethoden wie erwartet aufgerufen werden.

Hier ist ein Link zu dem Problem, das ich auf ihrem Github Repo veröffentlicht habe.

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

Hoffe, es hilft.

Verwandte Themen