Теперь мне бы хотелось иметь реальное решение для обмена сообщениями в реальном времени, но в идеале с использованием как можно большей части кодовой базы, написанной на PHP, и минимального количества дополнительной работы.
Поэтому я сначала посмотрел на решения для веб-сокетов на PHP, но продолжаю читать. о статьях, в которых говорится, что PHP не лучший вариант для веб-сокетов.
Поэтому я подумал о следующей архитектуре:
- Установить дополнительный каталог node.js на моей виртуальной машине.
- В этом каталоге настройте сервер веб-сокетов, отвечающий за обработку соединений ws.
- Когда клиент успешно входит в систему, устанавливает новое соединение с сервером веб-сокетов. Однако весь трафик приложения по-прежнему проходит через REST API, как и до сих пор. Соединение ws используется исключительно для пересылки полученных сообщений соответствующему клиенту в режиме реального времени.
- Создайте конечную точку на сервере node.js, например. POST /forward-messages, принимая массив, например. {message: string, id: int в качестве аргументов запроса. Когда запрос получен на этой конечной точке, сообщение отправляется соответствующим идентификаторам пользователей, указанным в запросе, которые в данный момент подключены к серверу ws.
Когда новое сообщение отправляется через REST API (например, конечная точка POST /messages), все остается как есть, плюс: конечная точка POST /forward-messages запускается соответствующим образом внутренне.
Есть ли какой-либо риск в этой настройке?
Подробнее здесь: https://stackoverflow.com/questions/790 ... tion-throu