数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

WebSocket控制器中输出返回值跟HTTP控制器一样,都是调用fetch()方法,只不过传入的参数格式不一样。

参数说明

依赖类:\x\controller\WebSocket
方法名:fetch()

参数:

  • int|string $action

    • 功能:状态码
    • 默认值:无
  • int|string $msg

    • 功能:状态码
    • 默认值success,非必填
  • mixed $data

    • 功能:结果集
    • 默认值[],非必填
  • int $fd

    • 功能:客户端的连接标识符
    • 默认值:当前客户端,传入该参数可用于群发消息

返回值:bool

示例代码:

<?php
namespace app\websocket;
use x\controller\WebSocket;

/**
 * @Controller(prefix="test")
*/
class Index extends WebSocket
{
    /**
     * @RequestMapping(route="/index", title="action为test/index访问这里")
    */
    public function index() {
        return $this->fetch(200, '描述', []);
    }
}

输出值的数据结构

输出的数据格式如下(未开启加密前):

{
    "action":"状态值",
    "msg":"描述",
    "data":"返回值",
}

获取当前客户端的fd连接标识

依赖类:\x\controller\WebSocket
方法名:get_current_fd()()

参数:无

返回值:int

示例代码:

<?php
namespace app\websocket;
use x\controller\WebSocket;

/**
 * @Controller(prefix="test")
*/
class Index extends WebSocket
{
    /**
     * @RequestMapping(route="/index", title="action为test/index访问这里")
    */
    public function index() {
        // 获取当前客户端标识符
        $fd = $this->get_current_fd();

        // 假设这里是一个所有客户端标识符的队列
        $list = [];

        // 接下来要广播消息
        foreach ($list as $v) {
            // 不给自己广播
            if ($v['fd'] == $fd) continue;

            // 广播消息
            $this->fetch(200, '描述', [], $v['fd']);
        }
    }
}

SW-X

企业级 - 高性能 PHP 框架

最后更新:3年前 . 作者-小黄牛

本篇目录