Задать вопрос

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

Связка "php ws сервер" <==> "браузер" работает отлично.
Требуется клиент на PHP, который будет подобно браузеру подключаться к php ws серверу и обмениваться с ним данными. Как реализовать PHP-клиент?
  • Вопрос задан
  • 26011 просмотров
Подписаться 9 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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'); //работает
Ответ написан
Комментировать
AngenOfBATYA
@AngenOfBATYA
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽