Я работаю с некоторыми IP-камерами (протокол HTTP), и мне нужно показать их изображения во встроенном HTML-коде в ионном приложении.Но каждый запрос к URL становился новым активным сеансом, даже если он с того же устройства.
Для этого я использую прокси-сервер CORS в NodeJS.В приложении Node, которое я использую для запроса изображения из URL предварительного просмотра камеры с учетными данными аутентификации, позже я использую метод pipe для отправки изображений с новыми заголовками.В приложении Ionic я вызываю функции с моего сервера узлов, чтобы получать изображения.Сначала все работает нормально, но проблема запускается после перезапуска приложения Ionic более 4 раз.Я знаю, что IP-камера имеет ограничение на количество активных сессий (4), но если я вызываю функции из одного и того же приложения, значит ли это, что серверу нужно сохранить или запомнить учетные данные?Каждый раз, когда я вызываю функции из приложения Ionic, это похоже на новую сессию для IP-камеры.Таким образом, после показа изображения четыре раза, запрос возврата 403, как будто я превышаю лимит активных пользователей, но проблема в том, что только один пользователь просматривает камеру.Есть ли способ решить это?Прежде всего, спасибо за ваше время и извините за мой плохой английский.
Прежде всего, мое приложение для узла было похоже на:
request.get("http://xxx.xxx.xxx.xxx/videostream.cgi?user=username&pwd=password")
.on('error', (err) => {
console.log(err)
})
.on('response', function (response) {
console.log(response)
delete response.headers['access-control-allow-origin'];
}).pipe(res);
Позже я попробовал что-то вроде:
request.get("http://xxx.xxx.xxx.xxx/videostream.cgi")
.on('error', (err) => {
console.log(err)
})
.on('response', function (response) {
console.log(response.statusCode)
if (response.statusCode == 401) {
request.get("http://xxx.xxx.xxx.xxx/videostream.cgi?user=username&pwd=password")
.on('error', (err) => {
console.log(err)
})
.on('response', function (response) {
console.log(response)
delete response.headers['access-control-allow-origin'];
}).pipe(res);
}else{
delete response.headers['access-control-allow-origin'];
return response.pipe(res)
}
})
Это потому, что, возможно, IP-камера может запоминать аутентификацию сервера, но всегда ошибка 401 возврата первого запроса (не аутентифицирована).Есть ли правильный способ запомнить сеанс?
Я также подумал, что одним из решений может быть выход пользователей из системы каждый раз после закрытия приложения, но я не представляю, возможно ли это по URL-адресу.
От уже большое спасибо!