我在PHP中为websockets设置了Ratchet。它使用(ws:// localhost:8080)从我的javascript客户端正常连接并成功发送/接收消息。但我想传递一些参数(ws:// localhost:8080?param1 = value)。我无法弄明白如何在PHP脚本中访问param1 。
如果可能,在MessageComponentInterface :: onOpen(ConnectionInterface $ conn)方法中。
或更好:我可以将这些参数与ConnectionInterface $ conn相关联。所以我让他们进行进一步的沟通。
答案 0 :(得分:15)
从a very recent update开始,您现在可以像这样访问:
function onOpen( ConnectionInterface $conn ) {
$querystring = $conn->WebSocket->request->getQuery();
}
我其实只是遇到了这个问题。经过测试,它完美无缺。
答案 1 :(得分:2)
$conn->WebSocket->request
替换为
$conn->httpRequest
这是一个PSR-7对象
https://github.com/ratchetphp/Ratchet/blob/master/CHANGELOG.md
答案 2 :(得分:0)
在symfony 4中,php> 7.1
$conn->httpRequest->getUri()->getQuery()
这会将所有参数返回到查询中,只需解析字符串即可提取所需的参数。