У меня есть существующее приложение PHP, которому необходимо добавить уведомления в реальном времени. Для этого я установил node.js (намереваясь добавить socket.io для всех функций реального времени)
Однако. Несмотря на то, что последние три часа проводили исследования и пытались понять, как интегрировать эти два, я не стал ближе к пониманию.
В настоящее время я использую следующее:
У меня уже написан код, который отправляет событие от клиента на PHP и вставляет уведомление в базу данных. Когда получатель обновляет свою страницу, они, конечно, видят уведомление. Мне просто нужно, чтобы node.js обрабатывал запрос в реальном времени клиенту, но я не понимаю, как его настроить.
То, что мне действительно нужно знать, учитывая этот сценарий, следующее:
В конечном итоге я хотел бы просто запустить функцию PHP и ожидать, что node.js / socket.io / websockets будут вызывать уведомление клиенту. Я просто понятия не имею, как туда добраться.
Заранее благодарим за любые примеры / информацию / руководства.
В этом случае я создам сервер Node.js с Socket.IO . Это дает вам кросс-браузерный метод для отправки данных в режиме реального времени клиентам.
Когда клиент загружает вашу страницу PHP, у вас будет тэг <script>
указывающий на ваш сервер Node.js для загрузки Socket.IO. После загрузки клиент Socket.IO JavaScript подключится к вашему серверу Socket.IO Node.js и дождитесь, пока события будут выпущены.
Теперь, поскольку вы хотите, чтобы эти события отправлялись с PHP, вам нужен канал связи между вашим PHP-приложением и Node.js. Я рекомендую использовать Redis pub / sub для этого. В основном, ваше приложение PHP публикует сообщение, и ваши серверы Node.js, подписавшиеся на него, получат его. Затем эти серверы могут сразу передать сообщение клиенту, чтобы получить больше данных с PHP. (Я думаю, вы обнаружите, что было бы так же просто, чтобы ваш сервер Node.js просто отправлял эти данные в первую очередь.)
Вы можете поместить Node.js за свой сервер Nginx, если хотите, но вам нужна последняя и самая большая версия для поддержки настоящих веб-сокетов .