// +---------------------------------------------------------------------- // MQTT Broker 配置项(后台"服务设置"表单数据源) return [ [ 'name' => 'port', 'title' => '监听端口', 'type' => 'number', 'value' => '1883', 'tip' => 'Broker 监听的 TCP 端口,默认 1883', ], [ 'name' => 'host', 'title' => '监听地址', 'type' => 'string', 'value' => '0.0.0.0', 'tip' => '绑定地址,0.0.0.0 表示全部网卡', ], [ 'name' => 'ws_port', 'title' => 'WebSocket端口', 'type' => 'number', 'value' => '8083', 'tip' => 'MQTT over WebSocket 端口(浏览器/小程序用),0 表示关闭', ], [ 'name' => 'ssl_enabled', 'title' => '启用TLS', 'type' => 'select', 'options' => ['0' => '关闭', '1' => '开启'], 'value' => '0', 'tip' => '对 TCP 监听启用 TLS(mqtts),需配置证书', ], [ 'name' => 'ssl_cert', 'title' => 'TLS证书路径', 'type' => 'string', 'value' => '', 'tip' => 'PEM 证书文件绝对路径(local_cert)', ], [ 'name' => 'ssl_key', 'title' => 'TLS私钥路径', 'type' => 'string', 'value' => '', 'tip' => 'PEM 私钥文件绝对路径(local_pk)', ], [ 'name' => 'allow_anonymous', 'title' => '允许匿名连接', 'type' => 'select', 'options' => ['1' => '允许', '0' => '禁止'], 'value' => '1', 'tip' => '禁止时需客户端提供正确用户名/密码(在"认证账号"中维护)', ], [ 'name' => 'acl_enabled', 'title' => '启用ACL', 'type' => 'select', 'options' => ['0' => '关闭', '1' => '开启'], 'value' => '0', 'tip' => '开启后按"ACL规则"表校验发布/订阅权限', ], [ 'name' => 'acl_default', 'title' => 'ACL默认策略', 'type' => 'select', 'options' => ['allow' => '默认允许', 'deny' => '默认拒绝'], 'value' => 'allow', 'tip' => '所有规则都未命中时的兜底策略', ], [ 'name' => 'max_keepalive', 'title' => '最大保活间隔(秒)', 'type' => 'number', 'value' => '60', 'tip' => '超过该间隔无心跳则断开', ], [ 'name' => 'max_connections', 'title' => '最大连接数', 'type' => 'number', 'value' => '5000', 'tip' => '单进程并发连接硬上限,超出拒绝新连接防止内存雪崩(0=不限)', ], [ 'name' => 'publish_rate_limit', 'title' => '单连接发布限流(条/秒)', 'type' => 'number', 'value' => '50', 'tip' => '令牌桶限流,单连接每秒最多发布数,超出静默丢弃(0=不限)', ], [ 'name' => 'sys_enabled', 'title' => '启用$SYS主题', 'type' => 'select', 'options' => ['1' => '开启', '0' => '关闭'], 'value' => '1', 'tip' => '周期发布 $SYS/broker/# 运行指标,可被客户端订阅', ], [ 'name' => 'sys_interval', 'title' => '$SYS发布间隔(秒)', 'type' => 'number', 'value' => '10', 'tip' => '系统指标发布周期', ], [ 'name' => 'persist_retain', 'title' => '持久化保留消息', 'type' => 'select', 'options' => ['1' => '开启', '0' => '关闭'], 'value' => '1', 'tip' => '重启后从数据库恢复保留消息', ], [ 'name' => 'persist_offline', 'title' => '持久化离线消息', 'type' => 'select', 'options' => ['1' => '开启', '0' => '关闭'], 'value' => '1', 'tip' => 'clean=false 会话离线期间的 QoS1/2 消息入库,重连补投', ], [ 'name' => 'offline_limit', 'title' => '离线队列上限', 'type' => 'number', 'value' => '1000', 'tip' => '单客户端离线消息最大条数,超出丢弃最旧', ], [ 'name' => 'cluster_enabled', 'title' => '启用集群桥接', 'type' => 'select', 'options' => ['0' => '关闭', '1' => '开启'], 'value' => '0', 'tip' => '开启后经 Redis Stream 打通多进程/WebSocket 与 TCP 消息(生产 Linux 建议开启)', ], [ 'name' => 'rule_enabled', 'title' => '启用转发规则', 'type' => 'select', 'options' => ['1' => '开启', '0' => '关闭'], 'value' => '1', 'tip' => '开启后按"转发规则"匹配源主题并桥接到外部 Broker(如 EMQX),需 workerman/mqtt', ], [ 'name' => 'redis_host', 'title' => 'Redis地址', 'type' => 'string', 'value' => '127.0.0.1', 'tip' => '集群桥接用 Redis 主机', ], [ 'name' => 'redis_port', 'title' => 'Redis端口', 'type' => 'number', 'value' => '6379', 'tip' => 'Redis 端口', ], [ 'name' => 'redis_db', 'title' => 'Redis库', 'type' => 'number', 'value' => '0', 'tip' => 'Redis 数据库序号', ], [ 'name' => 'redis_password', 'title' => 'Redis密码', 'type' => 'string', 'value' => '', 'tip' => '无密码留空', ], [ 'name' => 'log_level', 'title' => '日志级别', 'type' => 'select', 'options' => ['0' => '关闭', '1' => '仅错误', '2' => '详细'], 'value' => '1', 'tip' => '写入 runtime 日志的详细程度', ], ];