Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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 секунд не отвечать, если сказать нечего?

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

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2020, 12:40
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

Сообщение от Was-Ja
как правильно такую задачу решить?
Возможно нужно постоянное соединение - WebSockets.
Сообщение от Was-Ja
мне надо послать GET команду и сервер на нее, например, будет 10 секунд не отвечать, если сказать нечего?
Если соединение не постоянное, то будет так, как вы реализуете, может не отвечать, целую вечность, может ответить немедленно, не дожидаясь результат, а может подождать, сколько нужно.
Сообщение от Was-Ja
я должен каждому юзеру дать свой порт?
Нет конечно.
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2020, 15:56
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Спасибо большое за ответы!

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

Про порты - да, ошибся, действительно можно одним портом обойтись, спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значение input зная name формы? Wimko Общие вопросы Javascript 1 12.04.2020 18:18
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как сохранить быстро перезагружаемую страницу? avatator Общие вопросы Javascript 8 16.05.2013 01:39
Как получить переменную с сервера? DmitryT AJAX и COMET 2 03.08.2011 18:16
Как получить файл с сервера AJlekceu AJAX и COMET 1 02.11.2008 13:41