Подтвердить что ты не робот

Подключение к PHP с помощью Apache mod_proxy_wstunnel без использования сторонних API

Я новичок в мире WebSocket и даже через неделю, я все еще не мог найти, как использовать его с PHP без использования какой-либо сторонней библиотеки. Или не уверен, что это возможно.

У меня есть 3 вопроса,

1) Нужно ли нам использовать некоторые сторонние API или библиотеки, такие как Ratchet, PHP-Push-WebSocket или PHP WebSocket, чтобы включить PHP для обмена данными по протоколу WebSocket?

2) Если ваш ответ на предыдущий вопрос да, то в чем преимущество/цель использования Apache mod_proxy_wstunnel?

3) Если я использую любую стороннюю библиотеку PHP WebSocket, то мне все еще нужно включить и использовать Apache mod_proxy_wstunnel? Если нет, то опять же, какова цель Apache mod_proxy_wstunnel?

Я прошел через Использование go-websocket за Apache mod_proxy_wstunnel. В этом вопросе OP указал некоторый go-websocket, но, к сожалению, ссылка дает 404 Error и, следовательно, я не могу понять, использовал ли пользователь какой-либо сторонний API.

Любая помощь будет высоко оценена. Спасибо заранее.

4b9b3361

Ответ 1

PHP не создан для WS. Конечно, вы можете это сделать, но он заполнен while (true) и fsock_open [*]. И вы должны иметь доступ к оболочке для запуска WS-сервера с php-cgi. (Обычно)

Выберите язык, поддерживающий потоки/асинхронную связь. Теперь сверху Node.js. Кроме того, лучше использовать выделенные библиотеки для поддержки старых браузеров и т.д. Если вы подумываете об альтернативах ajax, вы можете использовать socket.io. Если вы хотите создать индивидуальную связь (например, чат, широковещательный обмен сообщениями), перейдите еще на один шаг и используйте одну из реализаций Bayeux, например: Faye.

Расширение mod_proxy_wstunnel добавляет дополнительный уровень к WS-серверу. В зависимости от конфигурации он может поддерживать DDoS, очередь, балансировку нагрузки, локальную замену портов и поддержку https. Но лучше использовать это для nginx.

Итак, для теста вам не нужно mod_proxy_wstunnel, и при производстве вы должны добавить дополнительный уровень безопасности, например, NGINX ws tunelling.

[*] Извините, я допустил некоторые ошибки. PHP имеет встроенную поддержку WebSockets. Это содержимое настроит вас отрицательно на WS в PHP.

Веб-сокеты - это события, а PHP плохо управляется с ним.