[英]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等等。 您可以看看我对所有这些的实现,并将其用作另一个起点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.