Начал изучать веб-сокеты... Написал сервер на PHP, который обрабатывает сообщения определённого формата. Сервер отлично работает с клиентом на C++, который просто коннектится на нужный порт localhost-а и начинает обмен данными. Но с браузером беда...
Сервер пишет, что Client connected... Но браузер не просто коннектится, а сразу шлёт HTTP-заголовки с Connection Upgrade и т.д. Естественно эти заголовки сервер никак не обрабатывает, так как ждёт сообщение другого формата, и в консоли браузера я вижу отправленные заголовки и бесконечное получение ответа. Естественно ожидаемый alert("Connection established");
не появляется
Я должен вручную обрабатывать эти заголовки? Может что-то не так делаю? Как автоматизировать эту браузерную формальность upgrade-а на WS?
Всё, разобрался!
define('WS_GIUD', '258EAFA5-E914-47DA-95CA-C5AB0DC85B11');
define('WS_KEY_MARKER', 'Sec-WebSocket-Key: ');
...
switch ($Data[0]){
case 'G': // GET / HTTP ...
$KeyStart = strpos($Data, WS_KEY_MARKER); // 'Sec-WebSocket-Key: '
if ($KeyStart){
$KeyStart += strlen(WS_KEY_MARKER);
$SecureKey = substr($Data, $KeyStart, strpos($Data, 0x0D0A, $KeyStart) - $KeyStart - 1);
$Handshake = "HTTP/1.1 101 Switching Protocols\r\n"
."Upgrade: websocket\r\n"
."Connection: Upgrade\r\n"
."Sec-WebSocket-Accept: ".base64_encode(sha1($SecureKey.WS_GIUD, true))."\r\n\r\n";
socket_write($Socket, $Handshake);
}
else{
socket_close($Socket);
unset($Clients[$Socket_key]);
break;
}
break;
Виртуальный выделенный сервер (VDS) становится отличным выбором
Можно ли в js обращаться к элементу по такой конструкции: documentgetElementById(id1 or id2 or id3) то есть при обращении указывать что нужно взять один из этих...
ЗдравствуйтеЕсть система автоматизации для аптек написанный на PHP mysql javascript и естественно HTML (вообщем браузерная)
Всем приветПодскажите пожалуйста, как можно сделать поочередное нажатие на кнопки?
Делаю форму обратной связи, сам скрипт и обработчик для формы нашел на просторах интернетаВот они: