相关疑难解决方法(0)

RatchetPHP 没有新连接的 WebSocket 属性

我正在尝试onOpen使用 Ratchet 访问 Websocket 服务器函数中传入连接的查询参数。官方文档和其他StackOverflow帖子都说您可以通过访问传递给函数的对象WebSocket的属性来做到这一点:ConnectionInterface

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

WebSocket但是,传入连接对象没有属性。当我启动该服务器并与客户端连接时,会发出一条通知,这会导致在对象上调用函数时出现致命错误null

PHP 注意:未定义属性:Ratchet\Server\IoConnection::$WebSocket

我正在使用 PHP 7.0,并且我需要最新的稳定版本composer.json

"require": {
    "cboden/ratchet": "^0.3.6"
}
Run Code Online (Sandbox Code Playgroud)

我还使用直接从Hello World文档复制的代码在 Chrome JS 控制台中连接客户端:

var conn = new WebSocket('ws://localhost:8080?foo=bar');
conn.onopen = function(e) {
    console.log("Connection established!");
};
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我看到的唯一公共属性$conn是:

bufferSize
stream
readable
writable
closing
loop
buffer
listenerse
decor
Run Code Online (Sandbox Code Playgroud)

javascript php websocket ratchet

4
推荐指数
1
解决办法
1561
查看次数

如何访问Ratchet WebSockets中的Guzzle QueryString参数?

嗨,我正在使用radchet websocket.我很难从对象变量中获取数据.

请检查我的代码:

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

输出:

Guzzle\Http\QueryString Object
(
    [fieldSeparator:protected] => &
    [valueSeparator:protected] => =
    [urlEncode:protected] => RFC 3986
    [aggregator:protected] =>
    [data:protected] => Array
        (
            [user_id] => 10
            [receiver_id] => 20
        )
)
Run Code Online (Sandbox Code Playgroud)

上面的代码我想user_idreceiver_id,但我无法得到.

我的代码:

echo $querystring->data:protected['user_id'];
echo $querystring->data:protected['receiver_id'];
Run Code Online (Sandbox Code Playgroud)

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

编辑:

如果我将对象转换为数组,则表示格式不正确.见下文.

$array =  (array)  $querystring;
print_r($array);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [ * fieldSeparator] => &
    [ * valueSeparator] => =
    [ * urlEncode] => RFC 3986
    [ * aggregator] …
Run Code Online (Sandbox Code Playgroud)

php guzzle ratchet

1
推荐指数
1
解决办法
886
查看次数

标签 统计

php ×2

ratchet ×2

guzzle ×1

javascript ×1

websocket ×1