Chrome / Android убивает веб-сокеты, работающие в фоновом режиме - PullRequest
2 голосов
/ 09 апреля 2019

Google Chrome в Android (также iPhone) убивает соединения через веб-сокет через некоторое время, которое колеблется между 20 сек - 3 мин, в зависимости от устройства. Он также не может обрабатывать простые таймеры или интервалы, когда приложение не на переднем плане, как в примере, который я прикрепляю внизу.

Я понимаю, что это нормально, для обновления срока службы батареи и сохранения ресурсов мобильного устройства, но это отстой ... Это действительно больно для любого веб-разработчика, когда пользователям нужно постоянно подключаться к сокету, а не Потеря подключения к веб-сокету, когда просто откройте WhatsApp, чтобы ответить на сообщение или другую вкладку браузера, а затем вернулись в веб-приложение и его отключили. Например, чат.

Есть ли решение этой проблемы? Что-то, что можно настроить прямо из Chrome, специальное разрешение для веб-приложения, какой-то обход для этой ситуации? Это веб-приложение, добавленное к стартовому экрану Android ... и, тем не менее, chrome, похоже, не придает ему особого приоритета, продолжает убивать websocket и отказывается выполнять javascript, когда веб-приложение находится в фоновом режиме. (экран выключен или другое приложение на переднем плане)

Надеюсь, я четко объяснил, я новичок в stackoverflow, и мой английский не очень хорош. Заранее спасибо!

Например, простая страница, которую вы можете запустить из своих мобильных браузеров и увидеть, что интервал не выполняется, как 10 секунд, как и следовало ожидать

<script>
    setInterval(function() {
        var timeNow = new Date().toLocaleTimeString()
        document.body.innerHTML += "<div> " + timeNow + "</div>"    
    }, 10000)
</script>

1 Ответ

0 голосов
/ 09 апреля 2019

Честно говоря, я не очень много знаю о веб-розетках, но общая проблема, с которой я столкнулся, заключается в том, что иногда, когда более одного или двух человек пытаются подключиться к одному и тому же, это выходит из себя.Может ли это быть вашей проблемой?Извините, если я не очень помог.Я сделал несколько программ на Python, которые содержат поток, и он закрывается после двух одновременных подключений.Может быть, разместить несколько веб-сокетов, как приложение для чата?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...