访问Ratchet Web套接字请求中的额外参数

Piy*_*esh 10 php websocket ratchet

我在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.

CJ *_*son 15

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

function onOpen( ConnectionInterface $conn ) {
   $querystring = $conn->WebSocket->request->getQuery();
}
Run Code Online (Sandbox Code Playgroud)

我其实只是遇到了这个问题.经过测试,它完美运行.

  • 至于今天,这对我有用:`$querystring = $conn->httpRequest->getUri()->getQuery();` `parse_str($querystring,$queryarray);` // 你的数据在 $queryarray 中 (3认同)

小智 7

在 symfony 4 中,php > 7.1

$conn->httpRequest->getUri()->getQuery()
Run Code Online (Sandbox Code Playgroud)

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