2016-06-14 3 views
1

J'ai essayé de me connecter à un serveur local sans succès. Mon code est la suivante -Module WebSocket Swift Starscream non Connexion au serveur local et méthodes sans délégué appelées

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

Les deux déclarations d'impression « Tentative de connexion » et « DONE Trying » sont présents dans le journal, mais aucune des méthodes de délégués semblent être appelé.

Je ne suis pas sûr de ce qui pourrait être mauvais ici.

Toute aide est appréciée.

+0

Avez-vous déjà résolu cela, je vois la même chose. – RickR

+0

J'ai posté une réponse à la question, j'espère que ça aide. – Dwijen

Répondre

0

Le problème était que je créais une instance de la classe SocketManager dans AppDelegate et que cette variable tombait hors de la portée.

Pour résoudre ce problème, j'ai créé une variable d'instance dans le AppDelegate, après avoir fait que les méthodes déléguées sont appelées comme prévu.

Voici un lien vers le problème que j'ai posté sur leur repo Github.

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

Hope it helps.