RatchetPHP 没有新连接的 WebSocket 属性

Jim*_*y P 4 javascript php websocket ratchet

我正在尝试onOpen使用 Ratchet 访问 Websocket 服务器函数中传入连接的查询参数。官方文档和其他StackOverflow帖子都说您可以通过访问传递给函数的对象WebSocket的属性来做到这一点:ConnectionInterface

public function onOpen(ConnectionInterface $conn) {
    $query = $conn->WebSocket->request->getQuery();
}
Run Code Online (Sandbox Code Playgroud)

WebSocket但是,传入连接对象没有属性。当我启动该服务器并与客户端连接时,会发出一条通知,这会导致在对象上调用函数时出现致命错误null

PHP 注意:未定义属性:Ratchet\Server\IoConnection::$WebSocket

我正在使用 PHP 7.0,并且我需要最新的稳定版本composer.json

"require": {
    "cboden/ratchet": "^0.3.6"
}
Run Code Online (Sandbox Code Playgroud)

我还使用直接从Hello World文档复制的代码在 Chrome JS 控制台中连接客户端:

var conn = new WebSocket('ws://localhost:8080?foo=bar');
conn.onopen = function(e) {
    console.log("Connection established!");
};
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我看到的唯一公共属性$conn是:

bufferSize
stream
readable
writable
closing
loop
buffer
listenerse
decor
Run Code Online (Sandbox Code Playgroud)

小智 5

我遇到了同样的问题,我发现:

 $querystring = $conn->httpRequest->getUri()->getQuery();
 parse_str($querystring,$queryarray);
Run Code Online (Sandbox Code Playgroud)

允许您访问查询参数。