diff --git a/iOS/FlipperKit/FlipperPlatformWebSocket.mm b/iOS/FlipperKit/FlipperPlatformWebSocket.mm index 505e99c8c..27010e68d 100644 --- a/iOS/FlipperKit/FlipperPlatformWebSocket.mm +++ b/iOS/FlipperKit/FlipperPlatformWebSocket.mm @@ -156,7 +156,9 @@ static constexpr int connectionKeepaliveSeconds = 10; // not notify the delegate. SocketRocket only triggers the close event // when the connection is closed from the server. _eventHandler(facebook::flipper::SocketEvent::CLOSE); - + // Clear the socket delegate before close. Ensures that we won't get + // any messages after the disconnect takes place. + _socket.delegate = nil; [_socket close]; _socket = nil; } diff --git a/iOS/FlipperKit/FlipperWebSocket.mm b/iOS/FlipperKit/FlipperWebSocket.mm index d73f429b1..d3bcec289 100644 --- a/iOS/FlipperKit/FlipperWebSocket.mm +++ b/iOS/FlipperKit/FlipperWebSocket.mm @@ -170,8 +170,9 @@ bool FlipperWebSocket::connect(FlipperConnectionManager* manager) { } eventHandler(event); }; + auto messageHandler = messageHandler_; socket_.messageHandler = ^(const std::string& message) { - this->messageHandler_(message); + messageHandler(message); }; if (endpoint_.secure) {