WebSocket, ReactPHP

112
13 октября 2019, 08:30

Изучаю вебсокеты, конкретно библиотеку reactphp, в документации масса примеров сокет-серверов, но подключение к сокету идёт в основном через telnet. Пытаюсь разобраться как вывести сообщения, полученные от сервера, в браузер. Но соединение с сервером не устанавливается и я не понимаю в чем проблема.

В консоли браузера выводится следующая ошибка: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE.

Необходимо ли при использовании данной библиотеки прописывать и отправлять ответные заголовки на сторону клиента или библиотека сама их формирует? Не нашёл такие подробности в документации, к сожалению.

Может быть причина в Apache, влияет ли он как-то на работу вебсокета?

Cервер:

$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server('127.0.0.1:8080', $loop);
$socket->on('connection', function(ConnectionInterface $connection){
$connection->write('Hi!');
$connection->on('data', function($data) use ($connection){
    $connection->write(strtoupper($data));
    });
});
echo "Listening on {$socket->getAddress()}\n";
$loop->run();

Клиент:

function message (text) {
    $('#chat-result').append(text);
}
$(document).ready(function($) {
    var socket = new WebSocket("ws://127.0.0.1:8080");
socket.onopen = function() {
    message("<div>Соединение установлено.</div>");
}
socket.onerror = function() {
    message("<div>Ошибка при соединении.</div>");
}
socket.onclose = function() {
    message("<div>Соединение закрыто.</div>");
}
socket.onmessage = function(event) {
    var data = JSON.parse(event.data);
    message("<div>" + data.type + " - " + data.message + "</div>");
    }
});
READ ALSO
Проблема с обработкой форм PHP

Проблема с обработкой форм PHP

Создал скрипт который должен реагировать на нажатие кнопки (с произвольным именем из 1 символа), однако при выполнении ничего не происходит...

100
Вывод контента с разных страниц на PHP [закрыт]

Вывод контента с разных страниц на PHP [закрыт]

Всем привет, имеется данный код на PHP, который парсит контент с одной страницыА как вывести например, контент с разных страниц

107