Как избежать таймаута сеанса в Android
В моем приложении Android покажут потоковое видео в реальном времени с помощью библиотеки LibVLC
. Для подключения сервера SSH я использовал библиотеку jsch
.
Когда я запускаю приложение, после успешного подключения сеансового видео. и когда я скрою приложение на 3-4 минуты и снова возобновляю видео, вы будете работать правильно. Но когда я скрою приложение на 10 или более минут, и при возобновлении он показывает сообщение session timeout
.
OnResume()
Я попытался создать сеанс и createPlayer()
, но все еще не работал.
Я попытался изменить время сеанса связи.
Есть ли способ избежать таймаута сеанса в течение длительного периода, например, 30 минут.
//** ПОСЛЕ ИЗМЕНЕНИЯ **//
Я проверил после OnResume()
сеанс все еще подключен, а в журнале ошибок Connection reset by peer.
Что это значит? Закрыт ли туннель ssh? Если да, то как проверить статус туннеля ssh?
Журнал ошибок:
08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: live555 demux: Не удалось подключиться с помощью rtsp://localhost: 8554/video.ts 08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: core demux: не доступны модули access_demux 08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: основной вход: создание доступа 'rtsp' location = 'localhost: 8554/video.ts', path = '(null)' 08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: основной доступ: поиск соответствия модуля доступа "rtsp": 15 кандидатов 08-09 10: 52: 15.268 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: доступ к ядру: сеть: подключение к локальному порту 8554 08-09 10: 52: 15.278 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: доступ к ядру: соединение выполнено успешно (socket = 36) 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: доступ к основным файлам: ошибка чтения: подключение reset by peer 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: access_realrtsp access: rtsp connected 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample W/VLC: access_realrtsp доступ: только реальные /helix rtsp-серверы, поддерживаемые на данный момент 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample D/VLC: доступ к ядру: нет доступных модулей доступа 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: вход ядра: открытие rtsp://localhost: 8554/video.ts 'failed 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: ввод сердечника: ваш вход не открывается 08-09 10: 52: 35.823 6529-21339/com.compdigitec.libvlcandroidsample E/VLC: основной вход: VLC не может открыть MRL 'rtsp://localhost: 8554/video.ts'
Ответы
Ответ 1
Ошибка demux, которую вы получаете, происходит на более высоком уровне в стеке. Вы должны сначала подтвердить, что базовое SSH-соединение все еще хорошо. Для этого проверьте и при необходимости повторите попытку, когда ваше приложение возобновится:
public void onResume() {
if (!session.isConnected()) {
reconnect(); // needs to create a new session, open a channel, etc.
}
}
Как только вы подтвердите соединение SSH, вы сможете возобновить поток через LibVLC. Если, однако, вы по-прежнему видите ошибку в этой точке, вам нужно будет показать код, который вы используете для открытия/возобновления потока.
Ответ 2
Похоже, вы открываете новый поток, когда у вас уже открыт существующий поток.
Поместите проверку для создания нового потока только тогда, когда старый поток отключен.
Следующая ссылка может помочь:
https://github.com/bastimeyer/livestreamer-twitch-gui/issues/181
Ответ 3
public void onResume() {
if (!session.isConnected()) {
reconnect(); // needs to create a new session, open a channel, etc.
}
}