Показать сообщение отдельно
  #1 (permalink)  
Старый 03.10.2020, 21:24
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Как быстро получить информацию о изменении статуса с сервера?
Добрый день,

есть фронтенд на JS + html + webgl, и бекенд на С + сокетах, без сервера, в лоб, ибо живет в реалтайме на ембеддед линуксе. И то и другое - пишу сам, то есть могу подстроиться.

Еще важный нюанс - бекенд на сервере может одновременно обслуживать несколько юзеров.

У меня часто есть такой сценарий - фронт послал команду беку, что типа измеряй, и ждет окончаний измерений. В это время юзер может смотреть предыдущие данные, которые фронт уже скачал и на вебгл отрисовывает.

Но бекенд иногда хочет быстро сообщить, что надо что-то там в приборе сделать.

Сейчас реализовал так, что раз в секунду посылаю бекенду команду GET и если бекенд послал в ответ специальный статус, то уже начинаю реагировать.

Мне эта конструкция не нравится тем, что постоянно гуляют пакеты туда-сюда, если юзер через мобильный интернет подключается, то у него может сосать много трафика.

Если делать запрос раз в 10-20-30 секунд, трафик будет меньше, но реакция на изменение состояния в приборе может быть с запозданием.

Скажите, пожалуйста, как правильно такую задачу решить?

Скажите, пожалуйста, правильно ли я мыслю, что мне надо послать GET команду и сервер на нее, например, будет 10 секунд не отвечать, если сказать нечего?

Скажите, пожалуйста, а будет ли нормально работать эта конструкция, если если на тот же бекенд-сервер придет еще одна команда от другого юзера на тот же порт, или в этом случае я должен каждому юзеру дать свой порт?

Спасибо!
Ответить с цитированием