JavaScript | Ошибка во время рукопожатия WebSocket: неожиданный код ответа: 200 - PullRequest
0 голосов
/ 03 февраля 2020

Я использую PHP сервер WebSocket. Я пытался
подключиться к нему с JavaScript. Каждый раз, когда у меня появляется ошибка.
Но соединение через PHP работает нормально

Ошибка:

Соединение WebSocket с 'ws: //xxx.xxx. xxx.xx / websocket / 'не удалось: ошибка во время рукопожатия WebSocket: непредвиденный код ответа: 200

Я часами пытался найти решение. Мой код сервера WebSocket выглядит следующим образом:

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP-Verbindung</h2>\n";

/* Den Port für den WWW-Dienst ermitteln. */
$service_port = getservbyname('www', 'tcp');

/* Die  IP-Adresse des Zielrechners ermitteln. */
$address = gethostbyname('localhost');

/* Einen TCP/IP-Socket erzeugen. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Versuche, zu '$address' auf Port '$service_port' zu verbinden ...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() fehlgeschlagen.\nGrund: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "HTTP HEAD request senden ...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Serverantwort lesen:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Socket schließen ...";
socket_close($socket);
echo "OK.\n\n";
?>

Мой код JavaScript для создания соединения выглядит следующим образом:

  var connection = new WebSocket('ws://xxx.xxx.xxx.xx:80/websocket');
  // When the connection is open, send some data to the server
  connection.onopen = function () {
  connection.send('Ping'); // Send the message 'Ping' to the server
};

// Log errors
  connection.onerror = function (error) {
  console.log('WebSocket Error ' + error);
};

// Log messages from the server
  connection.onmessage = function (e) {
  console.log('Server: ' + e.data);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...