         case 0:
             connected = true
             guard canDispatch else {return}
-            dispatch_async(queue) { [weak self] in
+            dispatch_async(callbackQueue) { [weak self] in
                 guard let s = self else { return }
                 s.onConnect?()
                 s.delegate?.websocketDidConnect(s)

                    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)
