reconnect: соблюдать паузу между попытками (backoff)
tryConnectOnce игнорировала результат runTcpLoop и всегда возвращала true, из-за чего reconnectLoop не делал паузу и переподключался заново каждые ~30 мс, заваливая сервер MSG_ERROR 'Access denied'. Теперь возвращаем !running, поэтому после разрыва/отказа выдерживается RECONNECT_DELAY_MS.
This commit is contained in:
@@ -264,7 +264,10 @@ class ReflectorClient(
|
|||||||
callbacks.onState(STATE_TCP_CONNECTED)
|
callbacks.onState(STATE_TCP_CONNECTED)
|
||||||
startTcpSenderThread(socket, s)
|
startTcpSenderThread(socket, s)
|
||||||
runTcpLoop(socket, s)
|
runTcpLoop(socket, s)
|
||||||
true
|
// runTcpLoop завершилась: если всё ещё должны работать — значит
|
||||||
|
// соединение разорвано/отклонено, вернём false, чтобы reconnectLoop
|
||||||
|
// выдержал RECONNECT_DELAY_MS и не бомбил сервер переподключениями.
|
||||||
|
!running.get()
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
try {
|
try {
|
||||||
socket.close()
|
socket.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user