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":"返回值",
}
依赖类:\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']);
}
}
}