Как правильно делать запросы чреез сокеты и прокси к wss (websocket)?

Доброго времени суток.
Нужно подключится к серверу через wss и обязательно через определённый http прокси
можно сделать socks5 прокси, но не допёр как его прикрутить.
делаю так:
$sp = stream_socket_client("proxy:ip", $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT , $context);
      $write = "CONNECT host.com:443 HTTP/1.1\r\n";
      $write .= "HOST: host.com\r\n";
      $write .= "\r\n";
      fwrite($sp, $write);

Если без прокси, то всё работает.

Соединение с прокси устанавливается, а далее получаю "400 The plain HTTP request was sent to HTTPS port"
Понимаю что запрос идёт не кодированый и просто текстом, но как по другому?
Всё тоже самое пробовал на node js, там всё завелось сразу, но ОЧЕНЬ желательно на PHP

Готовых решений для работы с wss не много
  • Вопрос задан
  • 628 просмотров
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
1. нужен socks4 / socks5 / HTTP tunnel
2. просто засунуть socks прокси в stream_socket_client вы не сможете. Но если очень захотите то делается это примерно так - https://github.com/weheartwebsites/SOCKS5/blob/mas...

Предлагаю использовать готовый и проверенный websocket клиент https://github.com/amphp/websocket-client
который умеет в прокси https://github.com/amphp/websocket-client/issues/24
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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