1

Здравствуйте. Беспокоит давно вопрос о том, как сделать так, чтобы пользователю при приходе ему нового сообщения появлялось об этом уведомление, как Вконтакте, к примеру, без перезагрузки. По логике вещей, это осуществляется с помощью AJAX, но я не могу понять одного: сервер принял от отправителя сообщение, записал его в БД и должен уведомить пользователя, которому сообщение было адресовано. Единственный вариант, что я вижу - на стороне клиент каждые n секунд посылать AJAX-запрос и проверять БД на наличие новых сообщений данному пользователю, но поправьте, разве это не дорого в плане нагрузки на сервер? Возможно, я чего-то не понимаю, так как новичок, поэтому если есть более элегантное решение - объясните, как это осуществить. Заранее благодарю

  • Самый простой и некрасивый вариант - да, каждый N секунд слать запрос с клиента. Получше - использовать long pooling на этих запросах. таким образом, их кол-во опустится до 1го в 30 сек (примерно). Еще лучше - использовать web sockets. – Иван Пшеницын Aug 10 '16 at 06:49
  • благодарю за быструю реакцию. попробую web sockets. я так понимаю, это новая технология – Alexander Aug 10 '16 at 06:50
  • Да, новая. Поддержка только с 10го IE. Самая интересная и перспективная в этом плане технология. Только нужно учитывать, что она не очень сочетается с php на сервере. Желательно использование nodeJS или чего-то другого. – Иван Пшеницын Aug 10 '16 at 06:52
  • Иван, насколько я понял, она позволяет серверу обмениваться информацией с клиентом? – Alexander Aug 10 '16 at 06:56
  • Всё вышеперечисленное поволяет обмениваться информацией с клиентом :) – andreymal Aug 10 '16 at 07:10

0 Answers0