     init(requester: SocketIORequester, transport: SocketIOTransport.Type) {
         // Connection transport
         self.requester = requester
-        self.transport = transport(delegate: self)
+        self.transportDelegate = TransportDelegate()
+        self.transport = transport(delegate: transportDelegate)
         // Designated
         super.init()
+        
+        // ToDo - Don't like this solution! (RP)
+        self.transportDelegate.connection = self
     }
     
     func open(hostUrl: NSURL) {

        performEvent(event, withError: error)
    }
    
    
    // MARK: SocketIOTransportDelegate
    
    func didReceiveMessage(event: String, withString message: String) {
        


import Foundation

class SocketIOConnection: SocketIOEventHandler, SocketIOEmitter {
    
    private let requester: SocketIORequester
    private let transport: SocketIOTransport
    private let transportDelegate: TransportDelegate
    
    convenience init(transport: SocketIOTransport.Type) {
        self.init(requester: SessionRequest(), transport: transport)
