Как реализовать Websocket клиент на PHP?

Связка "php ws сервер" <==> "браузер" работает отлично.
Требуется клиент на PHP, который будет подобно браузеру подключаться к php ws серверу и обмениваться с ним данными. Как реализовать PHP-клиент?
  • Вопрос задан
  • 22551 просмотр
Решения вопроса 1
fornit1917
@fornit1917
Web socket очень похож на HTTP же, специальные заголовки (Upgrade там всякие) надо передать только. Готовой либы для PHP не знаю, если не найдете, то можно самому на сырых tcp-сокетах сделать. Информации о протоколу достаточно много даже на русскоязычной википедии ru.wikipedia.org/wiki/WebSocket
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
$client = stream_socket_client($this->config['websocket'], $errorNumber, $errorString, 1);
fwrite($client, "GET / HTTP/1.1\r\nHost: localhost\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Key: tQXaRIOk4sOhgoq7SBs43g==\r\nSec-WebSocket-Version: 13\r\n\r\n");
Ответ написан
Либы ratchet и phpwebsocket
Туторчик

Composer'ом умеете пользоваться ?
Вот например банальный поисковый запрос.
Ответ написан
@carf
Вот у меня такая же проблема! С браузера на сервер нормально отсылаю запросы,
а вот с сервера на сервер какая-то почаль.. = (

Может кто находил готовую КЛИЕНТСКУЮ часть пхп?
Или можно маленький пример реализации, чтобы из РНР послать запрос вебсокету на порт?
Ответ написан
benbor
@benbor
Помог ответ - не забудь лайкнуть
да есть готовая клиентская часть, зачем писать самому?
devristo/phpws
Только баг есть у него, если в конце пути коннекта к вебсокет серверу, после порта, не будет символов - то не работает. Тоесть
$client = new WebSocket('ws://127.0.0.1:8080'); //не работает
 $client = new WebSocket('ws://127.0.0.1:8080/'); //работает
 $client = new WebSocket('ws://127.0.0.1:8080?someparams'); //работает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы