2017-08-16 4 views
0

Je tente de se connecter à mon socket localhost (qui fonctionne très bien) comme ceci:Starscream Swift connexion à la prise localhost ne fait rien

import Starscream  

class ViewController: UIViewController { 

let conn = ConnectionManager() 


override func viewDidLoad() { 
    super.viewDidLoad() 

    conn.startSession() 
} 

} 


class ConnectionManager { 

    let socket = WebSocket(url: URL(string: "ws://localhost:8080/")!) 

    func startSession(){ 
     socket.delegate = self 
     socket.connect() 
    } 
} 

extension ConnectionManager: WebSocketDelegate{ 
    func websocketDidConnect(socket: WebSocket) { 
     print("connected") 
    } 

    func websocketDidDisconnect(socket: WebSocket, error: NSError?) { 

    } 

    func websocketDidReceiveMessage(socket: WebSocket, text: String) { 
     print("text") 
    } 

    func websocketDidReceiveData(socket: WebSocket, data: Data) { 

    } 

//put the delegate methods here 

}

Cependant, dans mon serveur, il ne me signale pas que une nouvelle connexion a été faite. Qu'est-ce que je fais mal?

+0

cas où vous socket est alloué? Si vous faites un alloc dans la méthode, il pourrait devenir nul. Vous devez définir globalement instance dans votre classe, puis définissez le délégué dans une méthode de connexion. Cela devrait fonctionner. – Woof

+0

Je suis très nouveau à Swift. Pourriez-vous s'il vous plaît fournir un bref exemple @Woof –

Répondre

0

Essayez ceci:

import Starscream 
class ConnectionManager { 

let socket = WebSocket(url: URL(string: "ws://localhost:8080/")!) 

func startSession(){ 
    socket.delegate = self 
    socket.connect() 
} 

} 

extension ConnectionManager: WebSocketDelegate{ 
     //put the delegate methods here 
} 
+0

Le délégué doit vous fournir le résultat de la connexion. Et vous pouvez détecter ce qui se passe avec votre connexion – Woof

+0

Fonctionne bien mais les fonctions de délégué ne fonctionnent pas. Il n'affiche pas mes instructions d'impression onConnect et onDidReceiveData @Woof –

+0

Je mets à jour mon code @Woof –