                 return
             }
             
-            self.queue.async {
-                self.subscribers[request.id] = responseHandler
-                self.subscriptions[request.id] = subscriptionMessage
-                self.write(subscriptionMessage)
-            }
+            self.subscribers[request.id] = responseHandler
+            self.subscriptions[request.id] = subscriptionMessage
+            self.write(subscriptionMessage)
         }
         catch let error {
             responseHandler.didFinish(error: error)

                self.didReceive(subscription: subscription)
            case .connected:
                try self.connectionInitiated()
                if self.state == .connected {
                    self.queue.async {
                        self.subscriptions.forEach { (_, value) in
                            self.write(value)
                        }
                    }
                }
                

        case disconnected
    }
    
    public let webSocket: WebSocket
    public weak var delegate: WebSocketClientDelegate?
    public private(set) var state: State = .disconnected
