@cyber_user

Разрыв соединения websocket при отключении подсветки экрана?

Здравствуйте, суть вопроса в том что когда включена подстветка телефона все работает хорошо, с сервера websocket приходят уведомление пользователю на сайте, но как только подстветка выключается перестает работать ping с сервером. И вылазят ошибки в консоль где запущен сервер python websocket

ConnectionResetError: [WinError 64] The specified network name is no longer available
websockets.exceptions.ConnectionClosedError: no close frame received or sent


function keepAlive(timeout = 5000) { 
    if (socket.readyState == socket.OPEN) {
    console.log('ping');
    let json_info = JSON.stringify({'ping' : 1});
      socket.send(json_info);
    }
    timerId = setTimeout(keepAlive, timeout);  
}

async def handler(websocket, path):
    print("Client connected");
    async for message in websocket:
    	jsons = json.loads(message)
    	if 'register_personal' in jsons:
    		await ADD_REGISTER_USER(websocket,jsons['user_id']);
    		print(CONNECTIONS);
    	if 'add_client' in jsons:
    		await ADD_CLIENT(websocket,jsons['add_client'])
    		print(CONNECTIONS);
    	if 'action_staff_call' in jsons:
    		await STAFF_CALL(websocket,jsons['data']);
    	if 'confirmation' in jsons:
    		await CONFIRMATION_ORDER(websocket,jsons['data']);
    	if 'uploader_to_user' in jsons:
    		await UPLOADER_USERS(websocket,jsons);
    	
    await asyncio.sleep(1)

start_server = websockets.serve(handler, "localhost", 5000)


Что делать что бы соединение было даже когда отключен экран телефона? и уведомление приходили
  • Вопрос задан
  • 435 просмотров
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
я так понимаю питон на сервере у провайдера. явоскрипт в хроме на телефоне у пользователя.
Верно ?
А ответ почему не работает связан с особенностями поведения мобильных телефонов.
Во главе угла стоит экономия батарейки. Поэтому при отсутвии активности пользователя все фризиться.

https://caniuse.com/?search=Screen%20Wake%20Lock%20API
запретить гасить экран так себе вариант.

https://habr.com/ru/articles/321924/
Можете в офлайн посылать пуши (нотифи)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы