11

我已经在 PHP 中为 websockets设置了Ratchet 。它使用 (ws://localhost:8080) 从我的 javascript 客户端连接良好并成功发送/接收消息。但我想传递一些参数,例如 (ws://localhost:8080?param1=value)。我无法弄清楚如何在我的 PHP 脚本中访问 param1

如果可能,在 MessageComponentInterface::onOpen(ConnectionInterface $conn) 方法中。

或者更好:我可以将这些参数与 ConnectionInterface $conn 关联起来吗?所以我有他们进一步沟通。

我关注 了 http://socketo.me/docs/hello-world

4

3 回答 3

16

最近的更新中,您现在可以像这样访问它:

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

我实际上只是自己遇到了这个问题。对此进行了测试,它运行良好。

于 2014-04-03T04:14:15.490 回答
5

在 symfony 4 中 php > 7.1

$conn->httpRequest->getUri()->getQuery()

这会将所有参数返回到查询中,只需要解析字符串即可提取所需的参数。

于 2018-12-04T17:52:26.410 回答
3
$conn->WebSocket->request 

替换为

$conn->httpRequest 

这是一个 PSR-7 对象

https://github.com/ratchetphp/Ratchet/blob/master/CHANGELOG.md

于 2018-06-07T15:27:15.920 回答