Как подключить по WebSocket к Binаnсе?

Доброго времени суток друзья, хочу подключиться по WebSocket и подписаться на цену монеты в Binаnсе.
Делаю так:
<?php
$sock = stream_socket_client("ssl://stream.binance.com:9443",$error,$errnum,30,STREAM_CLIENT_CONNECT,stream_context_create(null));
if (!$sock)     echo "[$errnum] $error" . PHP_EOL;
 else {

  fwrite($sock, "GET /stream HTTP/1.1\r\n".
  "Host: stream.binance.com:9443\r\n".
  "Accept: */*\r\n".
  "Connection: Upgrade\r\n".
  "Upgrade: websocket\r\n". 
  "Accept-Encoding: deflate\r\n". 
  "Sec-WebSocket-Version: 13\r\n".
  "Sec-WebSocket-Key: ".rand(0,999)."\r\n"."\r\n");

$data='{"method":"SUBSCRIBE","params":["btcusdt@aggTrade","btcusdt@depth"],"id": 1}';

  fwrite($sock, $data);

  while (false !== ($char = fgetc($sock))) {
    echo "$char";
    }
}
?>

Но получаю в итоге ошибку Invalid request
HTTP/1.1 101 Switching Protocols Date: Tue, 19 Oct 2021 08:18:09 GMT Connection: upgrade Upgrade: websocket Sec-WebSocket-Accept: y/h04na+I7oqBifOLbclH5mSmDI= ��Invalid request


Подскажите пожалуйста что делаю не так и как правильно подключиться (подписаться) желательно без сторонних библиотек ? Заранее благодарю за помощь!
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
stream_socket_client это не вебсокеты.
В php не вебсокетов из коробки.

Нужен вебсокет клиент какой-то для этого.
Например Pawl
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы