Я создаю базовую небольшую крикету/чат AJAX для своего сайта, но я не уверен точно, как реализовать опрос сервера.
Здесь основной поток программы, о котором я думаю:
- Пользователь приходит на страницу и показывает последние 10 сообщений
- Чтобы получать сообщения, отправленные другими, клиентский javascript запрашивает URL-адрес с параметром timestamp (устанавливается на значение последнего сообщения, полученного клиентом)
- Сервер возвращает все сообщения (до 10) с этой отметки времени.
Единственная проблема заключается в том, как часто опросить сервер. Очевидно, что он должен опросить каждый раз, когда добавляется новое сообщение, но когда вы просто читаете сообщения других, ему необходимо автоматически обновлять.
Должно ли быть установленным лимит времени? например: каждые 10 секунд. Или, если он зависит от использования? например: проверка через 5 секунд. Если сообщений нет, не проверяйте еще 10 секунд. Если по-прежнему нет новых сообщений, отметьте 15 секунд, затем 20, возможно, один раз каждые 30 секунд. Каждый раз, когда новое сообщение обнаруживает reset, ваш таймер возвращается к 5 секундам и запускается снова.
Я просто обеспокоен тем, что на сервере излишне подчеркивает, учитывая, что мы могли бы одновременно иметь сотни пользователей.
... или я все понял неправильно? Есть ли лучший способ реализовать базовый чат javascript?