• WebSocket\Frame

    WebSocket\Frame

    4.2.0版本中, 新增了 服务端和客户端 发送WebSocket\Frame对象的支持

    同时增加了一个新的子类WebSocket\CloseFrame

    一个普通的frame对象具有以下属性

    1. object(Swoole\WebSocket\Frame)#1 (4) {
    2. ["fd"]=>
    3. int(0)
    4. ["data"]=>
    5. NULL
    6. ["opcode"]=>
    7. int(1)
    8. ["finish"]=>
    9. bool(true)
    10. }

    一个普通的close frame对象具有以下属性, 多了codereason属性, 记录了关闭的错误代码和原因

    如果服务端需要接收close frame, 需要通过$server->set开启open_websocket_close_frame参数

    1. object(Swoole\WebSocket\CloseFrame)#1 (6) {
    2. ["fd"]=>
    3. int(0)
    4. ["data"]=>
    5. NULL
    6. ["finish"]=>
    7. bool(true)
    8. ["opcode"]=>
    9. int(8)
    10. ["code"]=>
    11. int(1000)
    12. ["reason"]=>
    13. string(0) ""
    14. }

    在用于发送时, fd属性会被忽略(因为服务器端fd是第一个参数, 客户端无需指定fd), 所以fd是一个只读属性

    相关示例代码可以在 swoole websocket 单元测试 中找到