繁体   English   中英

PHP Websocket服务器和JavaScript连接

[英]PHP websocket server and JavaScript connection

我创建了一个PHP websocket服务器脚本,如下所示。

$socket = socket_create(AF_INET, SOCK_STREAM, 0);
$result = socket_bind($socket, '127.0.0.1', 5001);
while (true) {
    $result = socket_listen($socket);
    $client =  socket_accept($socket);
    $input = socket_read($client, 1024);
    $output = 'Input Received: '.$input;
    socket_write($client, $output, strlen($output));
    socket_close($client);
}
socket_close($socket);

我已经使用以下命令在终端中执行了包含上述代码的文件

$ php server.php

现在,我想使用JavaScript在前端获得响应。 我使用了以下JS代码段,但无法正常工作。

var ws = new WebSocket("ws://localhost:5001/echo");
ws.onopen = function() {
ws.send("Message to send");
    alert("Message is sent...");
};
ws.onmessage = function (evt) { 
    var received_msg = evt.data;
    alert("Message is received...");
};
ws.onclose = function() { 
    alert("Connection is closed..."); 
};

收到以下错误:

WebSocket与“ ws:// localhost:5001 / echo”的连接失败:WebSocket握手时出错:net :: ERR_INVALID_HTTP_RESPONSE

编写PHP Websocket服务器需要与客户端通过ws://连接到您进行一定的握手。 另外,您需要对传入和传出的消息进行解码和编码。 真正的乐趣始于客户通过wss://与您联系,然后您必须处理PHP服务器中的证书和密钥,并使用stream-io而不是socket-io等等。 您可以看看我对所有这些的实现,并将其用作另一个起点。

https://github.com/napengam/phpWebSocketServer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM