Не могу понять как работать с WebSocket и Long Polling php
Извините сразу же за такие глупые вопросы. Раньше я использовал ajax, но теперь мне нужно каждый раз прослушивать сообщения.
Задач несколько:
- Сделать уведомление
- Сделать график цены (для теста и для себя)
- Сделать хоть что бы комментарий отображался у другого пользователя сразу-же как другой его напишет. Как у Stack Overflow.
С Long Polling - немного понятнее. Пример с уведомлениями. В фоновом режиме можно отправить например запрос с помощи ajax, и ждать ответа 10 секунд. На сервере мы каждый раз (что ли) в бесконечном цикле while(true) отправляем запрос к бд и ждем, пока не появятся новые записи именно для этого пользователя. Если ответа уже нет 10 секунд то закрываем этот запрос и с помощи js ajax отправляем новый и так каждый раз. Я наверное не правильно понял Long Polling. Точно ли так? И точно ли бесконечном цикле ждать новых записей?
С WebSocket - у меня дела по труднее. Я понял что он в реальном времени отправляем сообщения с сервера на клиент, или клиент на сервер. Т.е как я понял мы подписываемся на постоянное подключение. Я создал свой сервер с WebSocket. Подключился с помощи js.
Пример с комментариями. Человек на странице продукта. Купил товар, и пишет отзыв даже не узнав о продукте, и тут я не понимаю как записывать данные и что бы сервер сразу же отправлял данные на клиент другим пользователям. 1. То ли с помощи ajax записывать в бд, а на сервере с WebSocket.ом читать таблицу с комментариями и отправлять на клиент. 2. Или одновременно записывать с помощи ajax в бд комментарий и одновременно отправлять на WebSocket и он отправляет другим клиентам это сообщение. 3. Можно сразу же записывать в бд комментарий на сервере с WebSocket а потом после записи отправлять другим клиентам.
Я думаю вы все меня поняли. Подскажите пожалуйста, я все таки боюсь начинать что то с ними делать. И да... Я не могу найти источники, я всегда вижу только как создают чаты, но они не работают с базами данных. Хотя с Long Polling - я нашел пример, но я что то сомневаюсь, что каждый раз обращаться к базе данных.