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