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

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

问题描述:

我试图访问使用棘轮的Websocket服务器的onOpen函数中的传入连接的查询参数。无论是official documentationStackOverflow帖子说,你可以通过访问传递给函数的ConnectionInterface对象的WebSocket属性做到这一点:RatchetPHP没有用于新连接的WebSocket属性

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

然而,没有WebSocket财产传入的连接对象。当我开始这个服务器与客户端连接,一个通知发出,这将导致致命的错误调用null对象上的功能:

PHP公告:未定义的属性:棘轮\服务器\ IoConnection :: $的WebSocket

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

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

我连接客户端的浏览器JS控制台代码直接复制来回米Hello World文档以及:

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 
+0

嗯...我不知道该文档在哪里,你能提供链接吗?通常你必须声明和“使用”特定的命名空间,然后调用该类。你还记得它是哪一类吗? – Anthony

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

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

允许您访问查询参数。