fix(android): release mode bugs: unavailable server and socket repeating
This commit is contained in:
@@ -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,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user