diff --git a/iOS/FlipperKit/FlipperWebSocket.h b/iOS/FlipperKit/FlipperWebSocket.h index 119ca3064..8a661922f 100644 --- a/iOS/FlipperKit/FlipperWebSocket.h +++ b/iOS/FlipperKit/FlipperWebSocket.h @@ -28,15 +28,13 @@ class FlipperWebSocket : public FlipperSocket { public: FlipperWebSocket( FlipperConnectionEndpoint endpoint, - std::unique_ptr payload, - folly::EventBase* eventBase); + std::unique_ptr payload); FlipperWebSocket( FlipperConnectionEndpoint endpoint, std::unique_ptr payload, - folly::EventBase* eventBase, ConnectionContextStore* connectionContextStore); - virtual ~FlipperWebSocket() {} + virtual ~FlipperWebSocket(); virtual void setEventHandler(SocketEventHandler eventHandler) override; virtual void setMessageHandler(SocketMessageHandler messageHandler) override; @@ -55,13 +53,12 @@ class FlipperWebSocket : public FlipperSocket { private: FlipperConnectionEndpoint endpoint_; std::unique_ptr payload_; - folly::EventBase* eventBase_; ConnectionContextStore* connectionContextStore_; - FlipperPlatformWebSocket* socket_; - SocketEventHandler eventHandler_; SocketMessageHandler messageHandler_; + + FlipperPlatformWebSocket* socket_; }; class FlipperWebSocketProvider : public FlipperSocketProvider { @@ -72,7 +69,7 @@ class FlipperWebSocketProvider : public FlipperSocketProvider { std::unique_ptr payload, folly::EventBase* eventBase) override { return std::make_unique( - std::move(endpoint), std::move(payload), eventBase); + std::move(endpoint), std::move(payload)); } virtual std::unique_ptr create( FlipperConnectionEndpoint endpoint, @@ -80,10 +77,7 @@ class FlipperWebSocketProvider : public FlipperSocketProvider { folly::EventBase* eventBase, ConnectionContextStore* connectionContextStore) override { return std::make_unique( - std::move(endpoint), - std::move(payload), - eventBase, - connectionContextStore); + std::move(endpoint), std::move(payload), connectionContextStore); } }; diff --git a/iOS/FlipperKit/FlipperWebSocket.mm b/iOS/FlipperKit/FlipperWebSocket.mm index 784844521..d73f429b1 100644 --- a/iOS/FlipperKit/FlipperWebSocket.mm +++ b/iOS/FlipperKit/FlipperWebSocket.mm @@ -92,22 +92,21 @@ class WebSocketSerializer : public FlipperPayloadSerializer { FlipperWebSocket::FlipperWebSocket( FlipperConnectionEndpoint endpoint, - std::unique_ptr payload, - folly::EventBase* eventBase) - : endpoint_(std::move(endpoint)), - payload_(std::move(payload)), - eventBase_(eventBase) {} + std::unique_ptr payload) + : endpoint_(std::move(endpoint)), payload_(std::move(payload)) {} FlipperWebSocket::FlipperWebSocket( FlipperConnectionEndpoint endpoint, std::unique_ptr payload, - folly::EventBase* eventBase, ConnectionContextStore* connectionContextStore) : endpoint_(std::move(endpoint)), payload_(std::move(payload)), - eventBase_(eventBase), connectionContextStore_(connectionContextStore) {} +FlipperWebSocket::~FlipperWebSocket() { + disconnect(); +} + void FlipperWebSocket::setEventHandler(SocketEventHandler eventHandler) { eventHandler_ = std::move(eventHandler); } @@ -169,8 +168,7 @@ bool FlipperWebSocket::connect(FlipperConnectionManager* manager) { promise.set_value(false); } } - eventBase_->runInEventBaseThread( - [eventHandler, event]() { eventHandler(event); }); + eventHandler(event); }; socket_.messageHandler = ^(const std::string& message) { this->messageHandler_(message); @@ -240,7 +238,6 @@ void FlipperWebSocket::sendExpectResponse( [socket_ setMessageHandler:^(const std::string& msg) { completion(msg, false); - [socket_ setMessageHandler:NULL]; }]; NSError* error = NULL; [socket_ send:messageObjc error:&error];