× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

Coroutine\Http\Client->upgrade

升级为WebSocket连接。

function Coroutine\Http\Client->upgrade(string $path);
  • 请求失败返回false,成功返回true
  • 某些情况下请求虽然是成功的,upgrade返回了true,但服务器并未设置HTTP状态码为101,而是200403,这说明服务器拒绝了握手请求
  • WebSocket握手成功后可以使用push方法向服务器端推送消息,也可以调用recv接收消息
  • upgrade会产生一次协程调度

使用实例

go(function () {
    $cli = new Co\http\Client("127.0.0.1", 9501);
    $ret = $cli->upgrade("/");
    if ($ret) {
        while(true) {
            $cli->push("hello");
            var_dump($cli->recv());
            co::sleep(0.1);
        }
    }
});

  • yichen

    创建连接怎样传参token验证参数127.0.0.1?token=13232无效呀 go(function () { $cli = new Co\http\Client("127.0.0.1", 9501); $ret = $cli->upgrade("/"); if ($ret) { while(true) { $cli->push("hello"); var_dump($cli->recv()); co::sleep(0.1); } } });