Работа с WebSocket'ами или же как создать простой чат

Хочу обучиться работе с websocket'ами, поставил себе задачу сделать онлайн чат, но не понимаю принцип работы.

  1. Можно ли пользоваться websocket'ами без установки всего на свете? Мне пришлось установить, brew, php, composer, Ratchet, и как то не хочется всё тоже самое устанавливать на сервер сайта, может можно пользоваться websocket'ами без библиотек, на чистом php.
  2. Я быстренько задал gpt вопрос, как сделать онлайн чат с помощью websocket'ов, она мне отдала такой php скрипт:
  <?php
    require __DIR__ . '/vendor/autoload.php';
    
    use Ratchet\MessageComponentInterface;
    use Ratchet\ConnectionInterface;
    
    class Chat implements MessageComponentInterface
    {
      protected $clients;
    
      public function __construct()
      {
        $this->clients = new \SplObjectStorage;
      }
    
      public function onOpen(ConnectionInterface $conn)
      {
        $this->clients->attach($conn);
        echo "New connection! ({$conn->resourceId})\n";
      }
    
      public function onMessage(ConnectionInterface $from, $msg)
      {
        foreach ($this->clients as $client) {
          $client->send($msg);
        }
      }
    
      public function onClose(ConnectionInterface $conn)
      {
        $this->clients->detach($conn);
        echo "Connection {$conn->resourceId} has disconnected\n";
      }
    
      public function onError(ConnectionInterface $conn, \Exception $e)
      {
        echo "An error has occurred: {$e->getMessage()}\n";
        $conn->close();
      }
    }
    
    // Run the server application
    $app = new Ratchet\App('localhost', 8080);
    $app->route('/chat', new Ratchet\WebSocket\WsServer(new Chat));
    $app->run();

Но проблема не в скрипте, а в том как его запустить отдельно на другом сервере, нейронка сказала "Запустите этот скрипт на сервере и он будет слушать веб-сокеты на ws://localhost:8080/chat.", но как его запустить на сервере, и где хранится чат HTML скрипт:

<!DOCTYPE html>
<html>
<head>
  <title>WebSocket Chat</title>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $(document).ready(function(){
      var conn = new WebSocket('ws://localhost:8080/chat');
      conn.onopen = function(e) {
        console.log("Connection established!");
      };

      conn.onmessage = function(e) {
        $('#messages').append('<li>' + e.data + '</li>');
      };

      $('#messageForm').submit(function(e){
        e.preventDefault();
        var message = $('#messageInput').val();
        $('#messageInput').val('');
        conn.send(message);
      });
    });
  </script>
</head>
<body>
  <ul id="messages"></ul>
  <form id="messageForm">
    <input type="text" id="messageInput">
    <input type="submit" value="Send">
  </form>
</body>
</html>


Ответы (0 шт):