编程语言
首页 > 编程语言> > javascript-RatchetPHP没有用于新连接的WebSocket属性

javascript-RatchetPHP没有用于新连接的WebSocket属性

作者:互联网

我正在尝试使用Ratchet访问Websocket服务器的onOpen函数中传入连接的查询参数. official documentation和其他StackOverflow帖子都说您可以通过访问传递给函数的ConnectionInterface对象的WebSocket属性来执行此操作:

public function onOpen(ConnectionInterface $conn) {
    $query = $conn->WebSocket->request->getQuery();
}

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

PHP Notice: Undefined property: Ratchet\Server\IoConnection::$WebSocket

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

"require": {
    "cboden/ratchet": "^0.3.6"
}

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

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

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

bufferSize
stream
readable
writable
closing
loop
buffer
listenerse
decor

解决方法:

我有同样的问题,我发现:

 $querystring = $conn->httpRequest->getUri()->getQuery();
 parse_str($querystring,$queryarray);

允许您访问查询参数.

标签:ratchet,websocket,javascript,php
来源: https://codeday.me/bug/20191025/1931052.html