Как быстро получить информацию о изменении статуса с сервера?
Добрый день,
есть фронтенд на JS + html + webgl, и бекенд на С + сокетах, без сервера, в лоб, ибо живет в реалтайме на ембеддед линуксе. И то и другое - пишу сам, то есть могу подстроиться. Еще важный нюанс - бекенд на сервере может одновременно обслуживать несколько юзеров. У меня часто есть такой сценарий - фронт послал команду беку, что типа измеряй, и ждет окончаний измерений. В это время юзер может смотреть предыдущие данные, которые фронт уже скачал и на вебгл отрисовывает. Но бекенд иногда хочет быстро сообщить, что надо что-то там в приборе сделать. Сейчас реализовал так, что раз в секунду посылаю бекенду команду GET и если бекенд послал в ответ специальный статус, то уже начинаю реагировать. Мне эта конструкция не нравится тем, что постоянно гуляют пакеты туда-сюда, если юзер через мобильный интернет подключается, то у него может сосать много трафика. Если делать запрос раз в 10-20-30 секунд, трафик будет меньше, но реакция на изменение состояния в приборе может быть с запозданием. Скажите, пожалуйста, как правильно такую задачу решить? Скажите, пожалуйста, правильно ли я мыслю, что мне надо послать GET команду и сервер на нее, например, будет 10 секунд не отвечать, если сказать нечего? Скажите, пожалуйста, а будет ли нормально работать эта конструкция, если если на тот же бекенд-сервер придет еще одна команда от другого юзера на тот же порт, или в этом случае я должен каждому юзеру дать свой порт? Спасибо! |
Цитата:
Цитата:
Цитата:
|
Спасибо большое за ответы!
Про WebSockets - думал, но пока на бекенде не смог быстро поднять, поэтому не смотрел в эту сторону. Похоже надо посмотреть в эту сторону повнимательнее. Скорей всего первую версию сделаю через не постоянное соединение, а потом попытаюсь переползти на вебсокеты. Про порты - да, ошибся, действительно можно одним портом обойтись, спасибо! |
Часовой пояс GMT +3, время: 22:55. |