Оправдано ли использование веб-сокетов в таком проекте?
Есть проект написанный на php с использованием ajax, вся его работа заключается в вытаскивании данных из апи по валютам, постоянном добавлении их в базу и подсчет некоторых характеристик, все это прозводится каждые 30 секунд кроном.
Пользователь, зайдя на сайт, через определенный интервал времени посылает запросы на 3 файла и получается json-данные, после чего эти данные обрабатываются и выводятся на сайте.
Есть понимание, что по-правильному это все должно быть через веб-сокеты, потому что информация обновляется часто, с другой стороны, пользователь просто должен получать информацию каждые 30 секунд и мне не важно знать сколько человек на сайте и как-то связывать их между собой (например чаты). В силу того, что по полученной информации из некоторых статей следует, что лепить веб-сокет на php это то еще занятие, а писать его на питоне или node у меня нет навыков, остается вопрос, есть ли какие-то серьезные аргументы в пользу использования веб-сокетов на проекте (проект будет использоваться очень узкой группой людей, 1-2 десятка человек) или обычного ajax вполне хватит?
Алексей Скляров, когда данные теряют актуальность очень быстро. Любая единая система для синхронизации 2-х или более пользователей.
Например, отображение любой статистики в реал-тайм режиме или любая игра, где все игроки должны видеть действия друг друга в том же реал-тайм режиме.
Есть понимание, что по-правильному это все должно быть через веб-сокеты, потому что информация обновляется часто
Нет у Вас понимания логики работы связки модулей даже, не говоря о понимании выбора инструмента))
Зачем сокет, если крон работает раз в 30 секунд, не нужна синхронизация между пользователями и актуальности данных с устареванием в 30 секунд - хватает?
Здесь даже речи о сокетах идти не может!
Веб-сокет - постоянное соединение - передача данных в реальном времени - данные поступили их обновили
30 сек - это далеко не "обновление в реальном времени"
Добавлю к ответу ...
Веб-сокеты оправданы когда один клиент отдал данные - другой клиент их сразу же получил.
Пример тут - чат.
Отличие от ajax, с помощью http get/post/аналогичных методов опрашивается каждый раз сервер через заданный интервал времени - ключевое "интервал и постоянно"
xmoonlight, я так понял комментарий про ajax и интервал? ... - не совсем тебя понял.
Нет варианта события, от сервера до клиента вообще может не быть связи по протоколу http, технически .... (ключ "от сервера")
JRK_DV, на клиенте есть обновление по таймеру, а есть - по событиям: нажатие кнопки, движение "мыши", воркер, активация поля ввода, ресайз окна, уход с вкладки и т.д.
Иными словами, это все события от JS и их комбинации.
xmoonlight, мягко говоря, мне с тобой не о чём рассуждать. От события до события - этот промежуток тоже таймер, который рано или поздно выполняется
Посмотри что такое данные в двухстороннем реальном времени и данные по требованию из клиента.
На затравку, как минимум всё что ты написал - это данные провоцирует клиент - именно клиент запрашивает когда обновить данные. "Движение мыши" лол, нечего личного, - просто представил чат с таким обновлением сообщений ...
У вас данные обновляются всегда. Это не то как в чате когда для того чтоб получить новое сообщение надо сделать десятки или сотни запросов и только один раз из множества запросов действительно окажется что данные есть. Так что думаю вам вебсокеты не нужны.
Но вот если у вас данные обновляются не строго раз в 30 сек а по не предсказуемому интервалу то тогда вебсокеты будут полезны для снижения нагрузки.
Но у вас ещё и файл отдаётся как статика и без доп логики так что если его скачают 20 - 30 человек не чего с вашим сервером не случится.