Allegro75
@Allegro75
SummaryTables.ru - сайт с футбольной статистикой

Как сделать вебсокет?

Пытаюсь сделать простейший вебсокет на своём пет-проекте.
summarytables.ru/elefly/socket_try_to_connect.php
Консоль в инструментах разработчика пишет ошибку:
socket_try_to_connect.php:17 WebSocket connection to 'wss://summarytables.ru/elefly/socket_2.php' failed:

62e6c24c4f0cc373570287.jpeg

Полный код файла socket_try_to_connect.php:
<!--  Простейший файл для подключения вебсокета -->

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Elefly</title>
</head>
<body>

    <script>
        
        document.addEventListener(`DOMContentLoaded`, () => {

            // Вебсокет:
            let socket = new WebSocket("wss://summarytables.ru/elefly/socket_2.php");
            socket.addEventListener("open", () => {
                console.log("We are connected");
                socket.send(JSON.stringify({'newWord' : "бубу"}));    
            });
            socket.addEventListener("message", (e) => {
                console.log(e.data);
            })
         
        })

    </script>

</body>
</html>


Полный код файла socket_2.php, к веб-сокету на к-ром я пытаюсь подключиться (файл лежит по соседству в той же папке, что и socket_try_to_connect.php):
<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'Локальное время ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>
  • Вопрос задан
  • 379 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вы не понимаете сути вебсокетов.
Сервер вебсокета должен работать как демон, постоянно слушая порт. Клиент подключается не к какому-то конкретному файлу, а непосредственно к открытому порту.
Посмотрите готовый фреймворк для реализации вебсокет-сервера: workerman
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы