Я разрабатываю веб-приложение, и мне было интересно, какой метод должен быть подходящим для моего проекта.
В основном, что я хочу отображать для пользователей, есть некоторые уведомления, которые берутся из запросов на другие серверы. Мое приложение node.js получает всю информацию, а затем распространяется на пользователей, сохраняя копию в моем MongoDB.
Идея довольно проста, но, читая о методах, я нашел эти два метода:
-
Ajax: клиентская сторона будет проверять все время, если на сервере будет новый контент. Это будет сделано с использованием jquery ajax для моего API-интерфейса (каждые 30/60 секунд).
-
Socket.io: клиент подключается один раз, а затем поддерживается постоянное TCP-соединение (больше в реальном времени).
Теперь я объяснил ситуацию, у меня есть следующие вопросы:
-
Не было бы у меня слишком много запросов с ajax? представьте, что я хочу каждую минуту проверять сервер, если мы масштабируем приложение до 100 пользователей, оно даст мне 100 запросов в минуту. Было бы "дешевле" в системных ресурсах иметь сокет?
-
Будет ли проблема сокета socket.io для мобильных устройств? полоса пропускания и производительность. Ответ сервера всегда является информацией в формате JSON.
-
Я читал, что now.js можно использовать для этого, но кажется, что проект больше не поддерживается, поэтому не уверен, что использование его было бы хорошей идеей.
-
Как кэширование обоих методов? Я рассматривал возможность создания файла кэша для каждого пользователя, и он будет обновляться с помощью node.js на стороне сервера. Я думаю, это может отлично работать с ajax, но как насчет socket.io?
-
Правда ли, что socket.io не совместим со многими браузерами? Мое приложение будет более сфокусировано на мобильных устройствах, и я думаю, что это может заставить меня подумать о выборе ajax.
-
Предлагается любая альтернатива?
Надеюсь, это может очистить мой разум и других, которые находятся в одной и той же ситуации:) Благодаря