2017-05-23 4 views
1

Je suis en train de créer un singleton avec des fonctionnalités WebSocket et je ne sais pas pourquoi il ne fonctionne pasComment créer un singleton pour le WebSocket (Starscream)?

Ceci est mon extension singleton:

import Starscream 

extension WebSocketManager: WebSocketDelegate { 
func websocketDidConnect(socket: WebSocket) { 
    print("websocket is connected") 
} 

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

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

func websocketDidReceiveData(socket: WebSocket, data: Data) { 
    print("Received data: \(data.count)") 
}} 

Mon singleton:

final class WebSocketManager: NSObject { 
static let sharedInstance = WebSocketManager() 
public var socket = WebSocket(url: URL(string: "ws://t-w-a.herokuapp.com/new")!) 

private override init() { 
    super.init() 
    // testing connection of the socket 
} 

func establishConnection() { 
    socket.connect() 
} 

func closeConnection() { 
    socket.disconnect() 
}} 

Lorsque j'essaie de connecter le serveur, rien ne se passe. Voici mon contrôleur:

class ChatViewController: UIViewController { 

@IBOutlet weak var typeText: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    WebSocketManager.sharedInstance.establishConnection() 
}} 

Répondre

1

J'ai problème trouvé, j'ai oublié d'assigner la variable socket avec le délégué

+0

Je veux juste prendre le temps de dire merci vous pour trouver la réponse et la mise à jour de cette question. –