PHP AMP Websocket: указание произвольных заголовков при рукопожатии
Задача: добавить произвольный заголовок клиенту при рукопожатии с сервером. Например Sec-WebSocket-Protocol
Решение:
use Amp\Delayed;
use Amp\Websocket\Client\Connection;
use Amp\Websocket\Client\Handshake;
use Amp\Websocket\Message;
use function Amp\Websocket\Client\connect;
use Amp\Socket\ClientTlsContext;
use Amp\Socket\ConnectContext;
Amp\Loop::run(function () use ($wss_url,$ip,$port,$pascket,&$answer,$wait_reseive) {
$tlsc=new ClientTlsContext("");
$tlw=$tlsc->withoutPeerVerification();
$connectContext = (new ConnectContext)->withTlsContext($tlw);
$handshake = (new Handshake("ws://1.18.24.70:$port/virtual_api_1c"))->withHeader('Sec-WebSocket-Protocol', 'virtual');
$connection = yield connect($handshake,$connectContext);
yield $connection->send($pascket);
yield $connection->close();
});