стандартный метод получения уведомления из базы данных об изменении/вставке

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

0
nl ja de

2 ответы

Используйте WebSockets. Или, по крайней мере, опрос AJAX. Увольнение запроса каждую секунду от 1500 клиентов, скорее всего, приведет к удалению вашего сервера.

Посмотрите http://socket.io/ , если вы готовы представить что-то новое для своего стека. Но есть решения PHP websocket, если вы ограничены PHP.

3
добавлено
Идея состоит в том, чтобы структурировать приложение по-другому. Вам не нужно сохранять сообщения в БД. Или, по крайней мере, вам не нужно постоянно читать. Просто отправляйте сообщения через WS непосредственно пользователям, когда они прибудут.
добавлено автор Jan Hančič, источник
Даже если я использую socket.io, мне все равно потребуется запрашивать мою базу данных каждый раз, когда каждый пользователь проверяет наличие обновлений сообщений. Это также приведет к проблемам?
добавлено автор Abhinav Joshi, источник

Ваш подход - это стандартный метод, называемый Опрос . Основываясь на количестве клиентов, это должно быть прекрасно для сервера с современным аппаратным обеспечением (делать HEAD запросы через AJAX ), которые указывают статус через <код > Код состояния HTTP ).

Другая альтернатива - как указал Ян - называется Pushing .

  • Плюсы: привлекает к серверу гораздо меньше запросов.
  • Минусы: требуется технология, которая может или не может быть предоставлена ​​браузером вашего клиента.

В случае, если вы выберете второй подход, просмотрите События, отправленные сервером ( W3C).

В этой спецификации определяется API для открытия HTTP-соединения для получения push-уведомлений с сервера в виде событий DOM. API разработан таким образом, что его можно расширить для работы с другими схемами push-уведомлений, такими как Push SMS.

1
добавлено
спасибо за все ссылки: D
добавлено автор Abhinav Joshi, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp