         didDisconnect = true
         connected = false
         guard canDispatch else {return}
-        dispatch_async(queue) { [weak self] in
+        dispatch_async(callbackQueue) { [weak self] in
             guard let s = self else { return }
             s.onDisconnect?(error)
             s.delegate?.websocketDidDisconnect(s, error: error)

                    return false
                }
                if canDispatch {
                    dispatch_async(queue) { [weak self] in
                        guard let s = self else { return }
                        s.onText?(str! as String)
                        s.delegate?.websocketDidReceiveMessage(s, text: str! as String)

            }
            if receivedOpcode == .Pong {
                if canDispatch {
                    dispatch_async(callbackQueue) { [weak self] in
                        guard let s = self else { return }
                        s.onPong?()
                        s.pongDelegate?.websocketDidReceivePong(s)
