fix(android): release mode bugs: unavailable server and socket repeating

This commit is contained in:
ksenia312
2024-02-08 14:52:50 +01:00
parent 6e2f07dc97
commit e05d55bcec
2 changed files with 23 additions and 19 deletions
+2
View File
@@ -12,6 +12,8 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- to save the received files --> <!-- to save the received files -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- to use sockets for data transfer -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature <uses-feature
android:name="android.hardware.wifi.direct" android:name="android.hardware.wifi.direct"
@@ -134,28 +134,30 @@ class NearbySocketService {
required NearbyServiceMessagesListener socketListener, required NearbyServiceMessagesListener socketListener,
required NearbyConnectionAndroidInfo info, required NearbyConnectionAndroidInfo info,
}) async { }) async {
final response = await _network.pingServer( if (state.value.isLoading) {
address: info.ownerIpAddress, final response = await _network.pingServer(
port: _androidData.port, address: info.ownerIpAddress,
);
if (await _pingManager.checkPong(response)) {
_socket = await _network.connectToSocket(
ownerIpAddress: info.ownerIpAddress,
port: _androidData.port, port: _androidData.port,
socketType: NearbySocketType.message,
); );
_createSocketSubscription(socketListener);
} else { if (await _pingManager.checkPong(response)) {
Logger.debug( _socket = await _network.connectToSocket(
'Retry to connect to the server in ${_androidData.clientReconnectInterval.inSeconds}s', ownerIpAddress: info.ownerIpAddress,
); port: _androidData.port,
Future.delayed(_androidData.clientReconnectInterval, () { socketType: NearbySocketType.message,
_tryConnectClient(
socketListener: socketListener,
info: info,
); );
}); _createSocketSubscription(socketListener);
} else {
Logger.debug(
'Retry to connect to the server in ${_androidData.clientReconnectInterval.inSeconds}s',
);
Future.delayed(_androidData.clientReconnectInterval, () {
_tryConnectClient(
socketListener: socketListener,
info: info,
);
});
}
} }
} }