握手后如何从php websocket服务器中的js websocket客户端获取数据?

问题描述

我有一个 nodejs websocket 客户端和一个 PHP websocket 服务器。我需要在建立连接后获取客户端发送的数据......我不知道如何实现这一点。我对该主题进行了一些研究,但找不到任何有用的东西。

// client.js

import WebSocket from 'ws';

let ws = new WebSocket("ws://localhost:8080");
ws.on("open",() => {
    ws.send("Hello World"); // sending data after connection is opened
});
// server.PHP

function newServer(string $address,int $port) {

    // Create WebSocket.
    $server = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
    socket_set_option($server,SOL_SOCKET,SO_REUSEADDR,1);
    socket_bind($server,$address,$port);
    socket_listen($server);
    $client = socket_accept($server);

    // Send WebSocket handshake headers.
    $request = socket_read($client,5000);
    preg_match('#Sec-WebSocket-Key: (.*)\r\n#',$request,$matches);
    $key = base64_encode(pack(
        'H*',sha1($matches[1] . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')
    ));
    $headers = "HTTP/1.1 101 Switching Protocols\r\n";
    $headers .= "Upgrade: websocket\r\n";
    $headers .= "Connection: Upgrade\r\n";
    $headers .= "Sec-WebSocket-Version: 13\r\n";
    $headers .= "Sec-WebSocket-Accept: $key\r\n\r\n";
    socket_write($client,$headers,strlen($headers));

    // after handshake get data?
}

newServer("0.0.0.0",8080);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...