2017-05-23 3 views
1

Ich versuche, einen Singleton mit WebSocket-Funktionalität zu schaffen, und ich weiß nicht, warum es nicht istWie erstellt man Singleton für den WebSocket (Starscream)? Das ist meine Singleton Erweiterung

arbeiten:

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

Mein Singletons:

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() 
}} 

Wenn ich versuche, den Server zu verbinden, passiert einfach nichts. Hier ist mein Controller:

class ChatViewController: UIViewController { 

@IBOutlet weak var typeText: UITextField! 

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

Antwort

1

I Problem gefunden habe, habe ich einfach vergessen Buchse Variable mit dem Delegierten zuweisen

+0

Ich will nur die Zeit nehmen Sie die Antwort zu finden und zu aktualisieren, dies zu sagen danken Frage. –