Я разрабатываю библиотеку, использующую SSHJ для передачи SFTP. Поскольку запросы часты, я задаюсь вопросом, могу ли я просто открыть соединение открытым.Как сохранить соединения SSH с помощью SSHJ?
Очевидно, что это ничего не достигнет, если сервер часто отключает соединение. Поскольку у меня нет контроля над сервером, я должен поддерживать соединение в сети: С обычным клиентом SSH я мог бы указать ServerAliveInterval
и попросить клиента сделать это для меня.
Я хотел бы сделать то же самое с SSHJ, но я не знаю, какое сообщение отправить.
SSH manual только утверждает, что ServerAliveInterval
Задает интервал времени ожидания в секундах, после которого, если данные не были получены от сервера, SSH (1) будет посылать сообщение через зашифрованный канал для запроса ответа с сервера.
Так что мне интересно: Какое сообщение отправлено? Как я могу воспроизвести это сообщение через SSHJ?
В случае, если связь когда-либо ломается или изменяется, линия client.getTransport(). SetHeartbeatInterval (30); – Scott
Он действительно сломан. –
текущей версии 0.23.0, это должно быть 'sshClient.getConnection.getKeepAlive.setKeepAliveInterval (15)'. – LoranceChen