@jenya_zhilin

Как исправить ошибку при подключении сайта к серверу на веб-сокетах?

Доброго времени суток! Изучаю веб-сокеты, написал простой сервер на PHP, используя при этом Workerman. Сервер запускается успешно, без ошибок. Далее написал банальный код для теста соединения на веб-сокетах используя чистый JS. Но тут столкнулся с чем-то непонятным, я когда загружаю страницу устанавливается соединение сразу же с веб-сокетом, в логах Workerman отображается следующее:
610cb48e1ad56761603373.png

Ну и соответственно в 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>
  • Вопрос задан
  • 280 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы