PHP Socket, как использовать протокол QUIC

У меня есть простой веб-сайт, размещенный на сервере.
Я использую QUIC в качестве протокола, и все выглядит нормально:

https://ibb.co/qywqQkC

Теперь я написал простой скрипт на клиенте, который просто продолжает посылать пакеты на хост, используя php, но в wiresharks эти пакеты отправляются через UDP вместо QUIC.

Любое предложение о том, как изменить и использовать QUIC?

https://ibb.co/J78B3zw

Это скрипт на клиенте

$server = 'X.X.X.X';
$port = 443;


$controllerSensors = new ControllerSensors();
$controllerSensors->createSensor("Sensore Bologna", "Temperatura", $server, $port, 1);
$controllerSensors->createSensor("Sensore Modena", "Temperatura", $server, $port,4);
$controllerSensors->createSensor("Sensore Reggio", "Umidità", $server, $port,8);
$controllerSensors->runAllSensors();

Запустить сценарий All Sensons:

            if(!($this->socket = socket_create(AF_INET, SOCK_DGRAM, 0))){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg \n");
}
if( ! socket_sendto($this->socket, $input , strlen($input) , 0 , $this->ip , $this->port)){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not send data: [$errorcode] $errormsg \n");
}

И, наконец, серверный скрипт:

$ip = "0.0.0.0";
$port = "443";

error_reporting(~E_WARNING);
if(!($sock = socket_create(AF_INET, SOCK_DGRAM, 0))){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg \n");
}

// Bind the source address
if( !socket_bind($sock, $ip , $port) ){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Could not bind socket : [$errorcode] $errormsg \n");
}

while(true){
$messageRecieved = "";
$r = socket_recvfrom($sock, $messageRecieved, 512, 0, $remote_ip, $remote_port);
echo $messageRecieved . "<br>";
}

Разве этот сценарий не должен использовать QUIC для данных, отправляемых вместо UDP, поскольку веб-сайт использует QUIC?
Я тоже пытался спросить о поддержке моего веб-сервера, но они сказали, что это должно быть хорошо, но я все еще не могу использовать Quic.
PS: когда я загружаю сайт в wireshark, я ясно вижу протокол QUIC, в то время как данные все еще отправляются через UDP

Спасибо,
Давида.

-1

Решение

Разве этот сценарий не должен использовать QUIC для данных, отправляемых вместо UDP, поскольку веб-сайт использует QUIC?

Скрипт использует то, что вы ему указываете — это простой UDP-сокет дейтаграммы. QUIC — это далеко не тривиальный протокол поверх UDP, поскольку HTTP является протоколом поверх TCP.

Он не используется волшебным образом, если вы подключаетесь к серверу, поддерживающему QUIC — так же, как HTTP не используется волшебным образом, если вы соединяетесь с TCP с сервером, поддерживающим HTTP. Вместо этого вы должны использовать реализацию протокола в вашем приложении. Вкратце, я не вижу существующей реализации QUIC для PHP. Но вы можете попытаться реализовать это самостоятельно, следуя этот проект на 135 страниц (QUIC пока не является стандартом) и, возможно, дополнительно этот проект на 48 страниц который описывает HTTP через QUIC.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]