Я разрабатываю приложение iOS и Android (используя ионный/угловой)
У меня есть следующая ситуация:
У меня есть мнение, что в основном это делает:
<div ng-repeat="monitor in monitors">
<img ng-src = 'http://myserver.com/cgi-bin/videoFeed?id={{monitor}}' />
</div>
Каждый монитор на самом деле является IP-камерой, и то, что мы здесь делаем, передает живой канал как непрерывные изображения в формате JPG (multipart/mime).
Что происходит, так это тег img, который постоянно показывает новые изображения, делая их похожими на живую видеопотоку
Проблема, с которой я столкнулся, - это когда мы выходим из представления, он выглядит как угловой, и все-таки держит HTTP-соединение открытым, и в результате сервер сохраняет соединение на своей стороне. Сервер запускает экземпляр "videoFeed" для каждого соединения, и я вижу, что экземпляры не исчезают даже долго (15-20 минут). Я выхожу из представления.
Есть ли возможный способ принудительного удаления этих соединений с клиента?
Я искал в SO для других подобных вопросов, и все они говорят о тайм-аутах HTTP, что не имеет значения в моем случае, поскольку это постоянное обновление фида изображения одним тегом изображения, и единственный раз, когда он должен прерываться, - когда мы выходим из представления,
благодаря
У меня есть теория, но не знаю, будет ли она работать. Я догадываюсь, как долго ваш url указывается на изображение, и это изображение обновляется, соединение останется открытым или снова откроется, когда изображение изменится. Итак, как насчет того, когда пользователь покидает состояние, вы удаляете список из dom с помощью ng-if.
так вот как это достигается.
В контроллере:
$scope.$on('$ionicView.beforeEnter', function(){
$scope.inView = true;
})
$scope.$on('$ionicView.beforeLeave', function(){
$scope.inView = false;
})
В HTML:
<div ng-repeat="monitor in monitors" ng-if="inView">
<img ng-src = 'http://myserver.com/cgi-bin/videoFeed?id={{monitor}}' />
</div>
можете ли вы дать эту попытку и сообщить мне, что происходит.
<ion-view cache-view="false">
?