Как делает уведомление о входящей корреспонденции на работах Gmail?

Впервые я добавляю следующий фрагмент кода в файл имя_проекта \ settings.py.

                  `INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        #Django REST Framework
        'rest_framework',
        #Games application
        'games.apps.GamesConfig',
                  ]`

После сохранения, при запуске следующего кода я получил ошибку.

                 `python manage.py makemigrations games`

Затем я проверяю файл settings.py и понимаю, что есть два INSTALLED_APPS, а во втором нет следующих. Когда я добавил их, код работал.

       `#Django REST Framework
       'rest_framework',
        #Games application
       'games.apps.GamesConfig',`
13
задан Community 23 May 2017 в 10:30
поделиться

4 ответа

Точно не знаю, какую технологию использует Gmail, но концепция состоит в том, чтобы открыть канал - используя обратный AJAX, методы на основе комет или звездочек.

Думайте об этом как о клиенте, запрашивающем данные у сервера, но сервер не возвращается в течение одной минуты, если у него нет новой почты. Используя эту технику, клиент может почти показать результаты в реальном времени, и ему не нужно опрашивать каждые 2 секунды. Имеет смысл?

11
ответ дан 1 December 2019 в 23:32
поделиться

Вы имеете право с простым ответом. Google Mail проверяет новые сообщения на сервере через AJAX.

2
ответ дан 1 December 2019 в 23:32
поделиться

Это должен быть какой-то прослушиватель ajax, который получает информацию каждые X секунд.

Я уже установил что-то подобное для одного из своих проектов. То, что я делал, - это вызов функции, которая возвращала истину или ложь. Истина, если страницу необходимо обновить, иначе - ложь. Затем, если у вас есть обновление, вы делаете еще один вызов, чтобы получить фактическое обновление. Таким образом, вам не нужно обновлять все каждый раз ... но это все равно интенсивно на сервере, если у вас много пользователей.

Другими словами, как сказал хаос, он опрашивает сервер.

2
ответ дан 1 December 2019 в 23:32
поделиться

Gmail, по сути, опрашивает сервер на предмет обновлений. Но не так часто, как каждые две секунды. Это было бы безумием. Небольшое тестирование с использованием данных о вмешательстве показывает, что это может выглядеть примерно каждые 20 секунд, хотя кажется, что происходит несколько событий, которые немного сбивают его с толку.

Что касается вашего редактирования, я полагаю, что у них может быть метка времени последней активности на отслеживание учетных записей в их базе данных, при этом запрос на опрос клиента извлекает это через Ajax и сравнивает с его последней синхронизацией, чтобы определить, нужно ли ему выполнять полное обновление.

3
ответ дан 1 December 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: