我已经为 PHP 中的 websockets 设置了 Ratchet 。它使用 (ws://localhost:8080) 从我的 javascript 客户端连接正常,并成功发送/接收消息。但我想传递一些参数,例如 (ws://localhost:8080?param1=value)。我无法弄清楚如何在 PHP 脚本中访问 param1。
如果可能的话,在 MessageComponentInterface::onOpen(ConnectionInterface $conn) 方法中。
或者更好:我可以将这些参数与 ConnectionInterface $conn.以便我与他们进行进一步的沟通。
从最近的更新开始,您现在可以像这样访问它:
function onOpen( ConnectionInterface $conn ) {
$querystring = $conn->WebSocket->request->getQuery();
}
其实我自己也遇到过这个问题。测试了一下,效果很好。
在 symfony 4 中,php > 7.1
$conn->httpRequest->getUri()->getQuery()
这会将所有参数返回到查询中,只需要解析字符串即可提取需要的参数。
$conn->WebSocket->request
替换为
$conn->httpRequest
这是一个 PSR-7 物体
https://github.com/ratchetphp/Ratchet/blob/master/CHANGELOG.md
有谁知道如何在没有棘轮的情况下做到这一点?请使用 JavaScript!