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

方法

WebSocket\ServerServer的子类,因此可以调用Server的全部方法。

需要注意WebSocket服务器向客户端发送数据应当使用WebSocket\Server::push方法,此方法会进行WebSocket协议打包。而Server::send方法是原始的TCP发送接口。

WebSocket\Server::disconnect方法可以从服务端主动关闭一个WebSocket连接,可以指定状态码(根据WebSocket协议,可使用的状态码为十进制的一个整数,取值可以是10004000-4999)和关闭原因(采用utf-8编码、字节长度不超过125的字符串)。在未指定情况下状态码为1000,关闭原因为空。


  • embrace

    on-open不会等function协程完成,会暂停后开启新的on-open协程 所有用全局变量传值不行,那只能用参数来传值?

    $http = new Swoole\Http\Server(C('ip'),8088);
    $http->set(C('set'));
    $http->on('request', function ($request, $response)use($http) {
        C('fd',$request->fd);
        co::sleep(1);
        if(C('fd')!=$request->fd) echo "\n".C('fd').'|'.$request->fd;
    
    });
    $http->start();