UDP 控制器
指定 Udp 路由解析规则。
// 解析 $data['action'] === 'login'
@WSRoute({"action"="login"})
// 解析 $data['a']['b']['c'] === 'login'
@WSRoute({"a.b.c"="login"})
// 解析 $data['a'] == '1' && $data['b'] == '2'
@WSRoute({"a"="1", "b"="2"})
路由匹配成功,就会执行这个动作。
配置文件
return [
'namespace' => 'ImiDemo\UdpDemo',
// 扫描目录
'beanScan' => [
// 主服务器配置,提供websocket服务
'mainServer' => [
'namespace' => 'ImiDemo\UdpDemo\MainServer',
'type' => Type::UDP_SERVER,
'host' => '0.0.0.0',
'port' => 8087,
'configs' => [
'reactor_num' => 2,
'worker_num' => 2,
'task_worker_num' => 8,
],
'dataParser' => Imi\Server\DataParser\JsonObjectParser::class,
}
由于UDP的特性,所以不支持分组发送。如有需要,可根据实际场景自行实现分组。
方法
/**
* 获取客户端的socket id
* @return int
*/
public function getFd(): int;
/**
* 获取客户端信息
* @return array
*/
public function getClientInfo();
// 格式同:https://wiki.swoole.com/wiki/page/477.html