JS WebSocket,与服务器建立连接时出现问题

JS WebSocket, Problem with making a connection to the Server

我只是想测试WebSockets,所以我搜索了它们并找到了一些教程。然后,我在 PHP 中编写了一些用于创建 WebSocket 服务器的代码。之后,我创建了一个客户端 HTML 文件,试图通过创建连接将数据发送到 WebSocket 服务器文件。现在,我遇到的问题是我不知道 HTML 客户端文件中的主机名应该是什么(它给了我一个错误)。

我的 WebSocket PHP 服务器文件包含以下内容:

<?php
$host = "192.168.xxx.xx";
$port = 8080;
set_time_limit(0);

$sock = socket_create(AF_INET, SOCK_STREAM, 0) or die("Couldn't create socket.");
$result = socket_bind($sock, $host, $port) or die("Couldn't bind to socket.");

$result = socket_listen($sock, 3) or die("Couldn't set up socket listener.");

do {
    $accept = socket_accept($sock) or die("Couldn't accept incoming connection.");
    $msg = socket_read($accept, 1024) or die("Couldn't read input.");
    $msg = trim($msg);

    $reply = "Message from server";
    socket_write($accept, $reply, strlen($reply)) or die("Couldn't write output.");
} while (true);

socket_close($accept, $sock);
?>

我的 HTML 客户端文件包含:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>WebSocket</title>
    </head>
    <body>
        <input type="text" name="msg" id="msg">
        <button id="sendbtn">Send</button>

        <script>
        const socket = new WebSocket('ws://192.168.xxx.xx:8080/');

        socket.addEventListener('open', function(event){
            console.log("Socket was created.");
        });

        document.getElementById("sendbtn").addEventListener('click', function(){

            socket.send(document.getElementById("msg").value);

        });
    
        socket.addEventListener('message', function(event){
            alert(event.data);
        });
        </script>
    </body>
</html>

这两个文件放在一个文件夹中(即DocumentRoot)。

感谢任何帮助。

根据用户@ADyson 在评论中所说,简单的 TCP 连接不能用于创建 WebSocket Server。相反,可以使用 Ratchet WebSocket 服务器。