php - 如何在 Ratchet WebSockets 中访问 Guzzle QueryString 参数?

标签 php guzzle ratchet

嗨,我正在使用 radchet websocket。我在从对象变量中获取数据时遇到了麻烦。

请检查我的代码:

var conn = new WebSocket('ws://localhost:8080?user_id=10&receiver_id=20');
$querystring = $conn->WebSocket->request->getQuery();
print_r($querystring);

输出:
Guzzle\Http\QueryString Object
(
    [fieldSeparator:protected] => &
    [valueSeparator:protected] => =
    [urlEncode:protected] => RFC 3986
    [aggregator:protected] =>
    [data:protected] => Array
        (
            [user_id] => 10
            [receiver_id] => 20
        )
)

上面的代码我想要 user_idreceiver_id但我无法得到。

我的代码:
echo $querystring->data:protected['user_id'];
echo $querystring->data:protected['receiver_id'];

我已回应但收到错误消息。请帮我。

编辑:

如果我将对象转换为数组,则它没有显示正确的格式。见下文。
$array =  (array)  $querystring;
print_r($array);

输出:
Array
(
    [ * fieldSeparator] => &
    [ * valueSeparator] => =
    [ * urlEncode] => RFC 3986
    [ * aggregator] =>
    [ * data] => Array
        (
            [user_id] => 10
            [receiver_id] => 20
        )

)

最佳答案

Guzzle\Http\QueryString扩展 Guzzle\Common\Collection所以你应该能够使用 Collection 的方法:

$user_id = $querystring->get('user_id');
$receiver_id = $querystring->get('receiver_id');

或者
$parameters = $querystring->toArray();
$user_id = $parameters['user_id'];
$receiver_id = $parameters['receiver_id'];

关于php - 如何在 Ratchet WebSockets 中访问 Guzzle QueryString 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965445/

相关文章:

php - 如何将 MySQL 数据透视表精确复制(样式和数据)到 HTML?

php - Guzzle 在后台进程中抛出 RejectionException 而不是 ConnectionException

php - Pear 错误已弃用

php - 我需要收集一组类来在 php 中调用它们的静态变量

php - 将选择的数据分组在一起

用于 HTTP keep-alive 的 PHP Guzzle 客户端

php - 如何使用 Guzzle PHP 获取 SENT 数据的主体?

PHP Ratchet NGINX 失败 WebSocket 连接握手错误响应代码 : 502

php - Ratchet 的 Symfony session 处理程序

javascript - Ratchet Websocket Apache2 SSL 无法连接到 PHP websocket