Доброго времени суток! Изучаю веб-сокеты, написал простой сервер на PHP, используя при этом Workerman. Сервер запускается успешно, без ошибок. Далее написал банальный код для теста соединения на веб-сокетах используя чистый JS. Но тут столкнулся с чем-то непонятным, я когда загружаю страницу устанавливается соединение сразу же с веб-сокетом, в логах Workerman отображается следующее:
Ну и соответственно в JS выходит ошибка о том, что подключение не удалось (WebSocket connection to _name_site_ failed).
То есть получается, что сначала соединение установилось, потом отключилось и так еще раз.
Исходники кода:
Сервер на PHP (Workerman):
<?php
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker("websocket://0.0.0.0:2346");
$worker->count = 4;
$worker->onConnect = function($c) {
echo "Connected\n";
};
$worker->onMessage = function($c, $data) use ($worker) {
foreach ($worker->connections as $clientConnections) {
$clientConnections->send($data);
}
};
$worker->onClose = function($c) {
echo "Connection closed\n";
};
Worker::runAll();
Клиент на JS:
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
const socket = new WebSocket("wss://176.99.11.138:2346");
</script>
</body>
</html>