您尚未登录,请登录后浏览更多内容! 登录 | 加入最MC

QQ登录

只需一步,快速开始

 找回密码
 加入最MC

QQ登录

只需一步,快速开始

查看: 419|回复: 0
打印 上一主题 下一主题

[闲聊] 画个大饼

[复制链接]
  • TA的每日心情
    开心
    2021-9-15 14:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    跳转到指定楼层
    楼主
    发表于 2025-10-5 15:39:02 | 只看该作者 |0人打赏回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 MC_Nirvana 于 2025-10-5 15:40 编辑

    画个大饼,什么时候完成看情况(欸嘿)
    1. <div style="color: rgb(204, 204, 204); background-color: rgb(31, 31, 31); font-family: &quot;Sarasa Term SC Nerd&quot;, Consolas, &quot;Courier New&quot;, monospace; font-size: 13px; line-height: 18px; white-space: pre;"><div><span style="color: #569cd6;font-weight: bold;"># Ambient Sensor | 环境传感器(内部开发代号:Arona-01)—— 实现文档</span></div>
    2. <div><span style="color: #569cd6;font-weight: bold;">## 功能设计</span></div><div><span style="color: #6796e6;">-</span> 代理服务器端(Velocity、BungeeCord)</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**普通模式(未启用网关模式时的默认选项。只能查询基本信息)**</span></div><div>    <span style="color: #6796e6;">-</span> 上下线提醒</div><div>    <span style="color: #6796e6;">-</span> 切换服务器提醒</div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>      <span style="color: #6796e6;">-</span> 代理端数据</div><div>        <span style="color: #6796e6;">-</span> 代理端名称</div><div>        <span style="color: #6796e6;">-</span> 代理端核心版本</div><div>        <span style="color: #6796e6;">-</span> 代理端全服在线人数</div><div>        <span style="color: #6796e6;">-</span> 后端子服务器运行状况概览</div><div>      <span style="color: #6796e6;">-</span> 子服务器端数据</div><div>        <span style="color: #6796e6;">-</span> 服务器名称(后端子服务器的实例名称与自定义别名)</div><div>        <span style="color: #6796e6;">-</span> 服务器运行状态</div><div>        <span style="color: #6796e6;">-</span> 服务器游戏版本</div><div>        <span style="color: #6796e6;">-</span> 服务器当前在线人数</div><div>        <span style="color: #6796e6;">-</span> 服务器MOTD</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>      <span style="color: #6796e6;">-</span> 玩家编号</div><div>      <span style="color: #6796e6;">-</span> 玩家游戏ID</div><div>      <span style="color: #6796e6;">-</span> 玩家UUID</div><div>      <span style="color: #6796e6;">-</span> 玩家在线状态</div><div>      <span style="color: #6796e6;">-</span> 玩家IP归属地</div><div>      <span style="color: #6796e6;">-</span> 玩家首次登陆时间</div><div>      <span style="color: #6796e6;">-</span> 玩家最后登陆时间</div><div>      <span style="color: #6796e6;">-</span> 玩家总在线时长</div><div>      <span style="color: #6796e6;">-</span> 玩家服务器切换记录</div><div>    <span style="color: #6796e6;">-</span> 设备绑定(通过游戏中的绑定码来将设备与游戏UUID绑定)</div><div>    <span style="color: #6796e6;">-</span> 设备管理(查看该UUID下绑定的所有设备)</div><div>    <span style="color: #6796e6;">-</span> Prometheus数据格式支持</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**网关模式(在安装了子服务器端插件并启用双方的网关模式时使用,此时代理服务器端插件将作为一个统一的“中枢网关”来获取、整合、输出子服务器端上报的数据和自身获取的数据)**</span></div><div>    <span style="color: #6796e6;">-</span> 上下线提醒</div><div>    <span style="color: #6796e6;">-</span> 切换服务器提醒</div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>      <span style="color: #6796e6;">-</span> 代理端数据</div><div>        <span style="color: #6796e6;">-</span> 代理端名称</div><div>        <span style="color: #6796e6;">-</span> 代理端核心版本</div><div>        <span style="color: #6796e6;">-</span> 代理端运行时间</div><div>        <span style="color: #6796e6;">-</span> 代理端全服在线人数</div><div>        <span style="color: #6796e6;">-</span> 后端子服务器运行状况概览</div><div>      <span style="color: #6796e6;">-</span> 子服务器端数据</div><div>        <span style="color: #6796e6;">-</span> 服务器名称(后端子服务器的实例名称与自定义别名)</div><div>        <span style="color: #6796e6;">-</span> 服务器运行状态</div><div>        <span style="color: #6796e6;">-</span> 服务器游戏版本</div><div>        <span style="color: #6796e6;">-</span> 服务器核心版本</div><div>        <span style="color: #6796e6;">-</span> 是否为Mod服务器</div><div>        <span style="color: #6796e6;">-</span> 服务器当前在线人数</div><div>        <span style="color: #6796e6;">-</span> 服务器TPS(视图类似Uptime Kuma的那种条形视图)</div><div>        <span style="color: #6796e6;">-</span> 服务器硬件占用数据(CPU占用、内存占用、硬盘空间占用、硬盘IO占用)</div><div>        <span style="color: #6796e6;">-</span> 服务器MOTD</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>      <span style="color: #6796e6;">-</span> 玩家编号</div><div>      <span style="color: #6796e6;">-</span> 玩家游戏ID</div><div>      <span style="color: #6796e6;">-</span> 玩家UUID</div><div>      <span style="color: #6796e6;">-</span> 玩家在线状态</div><div>      <span style="color: #6796e6;">-</span> 玩家IP归属地</div><div>      <span style="color: #6796e6;">-</span> 玩家所属权限组</div><div>      <span style="color: #6796e6;">-</span> 玩家Vault金钱数量</div><div>      <span style="color: #6796e6;">-</span> 玩家PlayerPoint点券数量</div><div>      <span style="color: #6796e6;">-</span> 玩家首次登陆时间</div><div>      <span style="color: #6796e6;">-</span> 玩家最后登陆时间</div><div>      <span style="color: #6796e6;">-</span> 玩家总在线时长</div><div>      <span style="color: #6796e6;">-</span> 玩家服务器切换记录</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div><div>    <span style="color: #6796e6;">-</span> 设备绑定(通过游戏中的绑定码来将设备与游戏UUID绑定)</div><div>    <span style="color: #6796e6;">-</span> 设备管理(查看该UUID下绑定的所有设备)</div><div>    <span style="color: #6796e6;">-</span> Prometheus数据格式支持</div>
    3. <div><span style="color: #6796e6;">-</span> 子服务器端(Spigot、Sponge)</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**普通模式(未启用网关模式时的默认选项。只能查询基本信息)**</span></div><div>    <span style="color: #6796e6;">-</span> 上下线提醒</div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>      <span style="color: #6796e6;">-</span> 查询内容</div><div>        <span style="color: #6796e6;">-</span> 服务器名称</div><div>        <span style="color: #6796e6;">-</span> 服务器游戏版本</div><div>        <span style="color: #6796e6;">-</span> 服务器核心版本</div><div>        <span style="color: #6796e6;">-</span> 服务器运行时间</div><div>        <span style="color: #6796e6;">-</span> 是否为Mod服务器</div><div>        <span style="color: #6796e6;">-</span> 服务器当前在线人数</div><div>        <span style="color: #6796e6;">-</span> 服务器TPS(视图类似Uptime Kuma的那种条形视图)</div><div>        <span style="color: #6796e6;">-</span> 服务器硬件占用数据(CPU占用、内存占用、硬盘空间占用、硬盘IO占用)</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>      <span style="color: #6796e6;">-</span> 查询内容</div><div>        <span style="color: #6796e6;">-</span> 玩家编号</div><div>        <span style="color: #6796e6;">-</span> 玩家游戏ID</div><div>        <span style="color: #6796e6;">-</span> 玩家UUID</div><div>        <span style="color: #6796e6;">-</span> 玩家在线状态</div><div>        <span style="color: #6796e6;">-</span> 玩家IP归属地</div><div>        <span style="color: #6796e6;">-</span> 玩家所属权限组</div><div>        <span style="color: #6796e6;">-</span> 玩家Vault金钱数量</div><div>        <span style="color: #6796e6;">-</span> 玩家PlayerPoint点券数量</div><div>        <span style="color: #6796e6;">-</span> 玩家首次登陆时间</div><div>        <span style="color: #6796e6;">-</span> 玩家最后登陆时间</div><div>        <span style="color: #6796e6;">-</span> 玩家总在线时长</div><div>        <span style="color: #6796e6;">-</span> 玩家服务器切换记录</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div><div>    <span style="color: #6796e6;">-</span> 设备绑定(通过游戏中的绑定码来将设备与游戏UUID绑定)</div><div>    <span style="color: #6796e6;">-</span> 设备管理(查看该UUID下绑定的所有设备)</div><div>    <span style="color: #6796e6;">-</span> Prometheus数据格式支持</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**网关模式(在安装了代理服务器端插件并启用双方的网关模式时使用,此时代理服务器端插件将作为一个统一的“中枢网关”来获取、整合、输出子服务器端上报的数据和自身获取的数据)**</span></div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表上报</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息上报</div><div>    <span style="color: #6796e6;">-</span> 服务器数据上报</div><div>      <span style="color: #6796e6;">-</span> 上报内容</div><div>        <span style="color: #6796e6;">-</span> 服务器核心版本</div><div>        <span style="color: #6796e6;">-</span> 是否为Mod服务器</div><div>        <span style="color: #6796e6;">-</span> 服务器TPS(视图类似Uptime Kuma的那种条形视图)</div><div>        <span style="color: #6796e6;">-</span> 服务器硬件占用数据(CPU占用、内存占用、硬盘空间占用、硬盘IO占用)</div><div>    <span style="color: #6796e6;">-</span> 玩家数据上报</div><div>      <span style="color: #6796e6;">-</span> 上报内容</div><div>        <span style="color: #6796e6;">-</span> 玩家所属权限组</div><div>        <span style="color: #6796e6;">-</span> 玩家Vault金钱数量</div><div>        <span style="color: #6796e6;">-</span> 玩家PlayerPoint点券数量</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div><div>    <span style="color: #6796e6;">-</span> 设备绑定(通过游戏中的绑定码来将设备与游戏UUID绑定)</div><div>    <span style="color: #6796e6;">-</span> 设备管理(查看该UUID下绑定的所有设备)</div><div>    <span style="color: #6796e6;">-</span> Prometheus数据格式支持</div>
    4. <div><span style="color: #6796e6;">-</span> 配套手机App端(Android)</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**全局功能**</span></div><div>    <span style="color: #6796e6;">-</span> 实例列表(可以定义多个查询服务器)</div><div>    <span style="color: #6796e6;">-</span> 收藏服务器(可以收藏某个服务器,并在主页显示概览)</div><div>    <span style="color: #6796e6;">-</span> 搜索功能(搜索指定服务器并显示概览)</div><div>    <span style="color: #6796e6;">-</span> 设备绑定(通过游戏中的绑定码来将设备与游戏UUID绑定)</div><div>    <span style="color: #6796e6;">-</span> 设备管理(查看该UUID下绑定的所有设备)</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**连接代理服务器端**</span></div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**连接子服务器端(仅在子服务器端未启用网关功能时使用)**</span></div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div>
    5. <div><span style="color: #6796e6;">-</span> 配套手机App端(NOKIA Symbian J2ME)</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**全局功能**</span></div><div>    <span style="color: #6796e6;">-</span> 实例列表(可以定义多个查询服务器)</div><div>    <span style="color: #6796e6;">-</span> 收藏服务器(可以收藏某个服务器,并在主页显示概览)</div><div>    <span style="color: #6796e6;">-</span> 搜索功能(搜索指定服务器并显示概览)</div><div>    <span style="color: #6796e6;">-</span> 设备绑定(通过游戏中的绑定码来将设备与游戏UUID绑定)</div><div>    <span style="color: #6796e6;">-</span> 设备管理(查看该UUID下绑定的所有设备)</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**连接代理服务器端**</span></div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**连接子服务器端(仅在子服务器端未启用网关功能时使用)**</span></div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div>
    6. <div><span style="color: #6796e6;">-</span> 配套可穿戴设备端(Xiaomi Vela、Google Wear OS)</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**全局功能**</span></div><div>    <span style="color: #6796e6;">-</span> 实例列表(可以定义多个查询服务器)</div><div>    <span style="color: #6796e6;">-</span> 收藏服务器(可以收藏某个服务器,并在主页显示概览)</div><div>    <span style="color: #6796e6;">-</span> 搜索功能(搜索指定服务器并显示概览)</div><div>    <span style="color: #6796e6;">-</span> 设备绑定(通过Android APP扫描可穿戴设备的二维码来将可穿戴设备绑定为子设备)</div><div>    <span style="color: #6796e6;">-</span> 设备管理(查看该UUID下绑定的所有设备)</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**连接代理服务器端**</span></div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div><div>  <span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**连接子服务器端(仅在子服务器端未启用网关功能时使用)**</span></div><div>    <span style="color: #6796e6;">-</span> 玩家在线列表查询</div><div>    <span style="color: #6796e6;">-</span> 服务端插件信息查询</div><div>    <span style="color: #6796e6;">-</span> 服务器数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家数据查询</div><div>    <span style="color: #6796e6;">-</span> 玩家命令执行</div><div>    <span style="color: #6796e6;">-</span> 玩家跨端聊天</div>
    7. <div><span style="color: #569cd6;font-weight: bold;">## 逻辑设计</span></div>
    8. <div><span style="color: #569cd6;font-weight: bold;">### 数据通信逻辑说明</span></div>
    9. <div><span style="color: #569cd6;font-weight: bold;">#### 1. 总体原则</span></div>
    10. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**开启网关模式时,仅代理服务器端对外提供数据通信服务**</span>。</div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**子服务器端在网关模式下不开放任何对外端口**</span>,仅通过内网与代理端通信。</div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**关闭网关模式后**</span>,子服务器端可独立对外提供完整服务(此时行为等同于单服模式)。</div>
    11. <div>---</div>
    12. <div><span style="color: #569cd6;font-weight: bold;">#### 2. 通信架构</span></div>
    13. <div><span style="color: #569cd6;font-weight: bold;">##### 2.1 外部客户端 → 代理服务器端</span></div>
    14. <div>所有外部客户端(Android、Symbian J2ME、管理工具等)必须连接<span style="color: #569cd6;font-weight: bold;">**代理服务器端**</span>的指定 IP 和端口,才能使用服务。</div>
    15. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**协议**</span>:</div><div>  <span style="color: #6796e6;">-</span> Android / 现代设备:HTTPS + JSON</div><div>  <span style="color: #6796e6;">-</span> Symbian J2ME:HTTP + 简化 JSON(兼容低性能设备)</div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**认证方式**</span>:设备绑定后生成 <span style="color: #ce9178;">`device_token`</span>,每次请求携带该令牌。</div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**功能范围**</span>:玩家查询、服务器状态、命令执行、跨服聊天等全部功能。</div>
    16. <div><span style="color: #6a9955;">></span> ✅ 代理端在开启网关模式时,将负责聚合所有子服务器的数据,并统一对外输出。</div>
    17. <div><span style="color: #569cd6;font-weight: bold;">##### 2.2 代理服务器端 ↔ 子服务器端(内网通信)</span></div>
    18. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**通信方式**</span>:WebSocket(推荐)或 HTTP(备用)</div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**网络范围**</span>:仅限内网(禁止公网访问)</div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**认证机制**</span>:预共享密钥(<span style="color: #ce9178;">`shared_secret`</span>),在插件配置中设置</div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**数据流向**</span>:</div><div>  <span style="color: #6796e6;">-</span> 子服务器 → 代理端:上报玩家状态、TPS、硬件资源、插件信息等</div><div>  <span style="color: #6796e6;">-</span> 代理端 → 子服务器:转发远程命令、跨服聊天消息等</div>
    19. <div><span style="color: #6a9955;">></span> ???? 子服务器在网关模式下<span style="color: #569cd6;font-weight: bold;">**不监听任何外部端口**</span>,完全依赖代理端中转。</div>
    20. <div><span style="color: #569cd6;font-weight: bold;">##### 2.3 子服务器独立模式(网关关闭)</span></div>
    21. <div><span style="color: #6796e6;">-</span> 子服务器插件自动启用对外 API 端口</div><div><span style="color: #6796e6;">-</span> 功能与代理端在网关模式下一致</div><div><span style="color: #6796e6;">-</span> 客户端可直接连接该子服务器使用服务</div>
    22. <div>---</div>
    23. <div><span style="color: #569cd6;font-weight: bold;">#### 3. 可穿戴设备通信策略</span></div>
    24. <div><span style="color: #569cd6;font-weight: bold;">##### 3.1 设计决策</span></div>
    25. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**统一采用 BLE(蓝牙低功耗)通信**</span></div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**可穿戴设备(Wear OS / Xiaomi Vela)无法独立使用**</span></div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**必须依赖已安装 Arona-01 的 Android 手机 App 作为中继**</span></div>
    26. <div><span style="color: #6a9955;">></span> ???? 原因:Xiaomi Vela 设备性能有限,无法稳定运行独立网络栈;为保证体验一致性,所有可穿戴设备均通过 BLE 与手机 App 通信。</div>
    27. <div><span style="color: #569cd6;font-weight: bold;">##### 3.2 数据流向</span></div><div>可穿戴设备 ↔ (BLE) Android 手机 App ↔ (HTTPS) 代理服务器端</div>
    28. <div><span style="color: #6796e6;">-</span> 手机 App 负责:</div><div>  <span style="color: #6796e6;">-</span> 从服务器拉取数据</div><div>  <span style="color: #6796e6;">-</span> 通过 BLE 同步摘要信息到可穿戴设备(如在线人数、通知提醒)</div><div>  <span style="color: #6796e6;">-</span> 将可穿戴设备的操作(如"发送消息")转发至服务器</div><div><span style="color: #6796e6;">-</span> 可穿戴设备<span style="color: #569cd6;font-weight: bold;">**不直接连接 Minecraft 服务器或代理端**</span></div>
    29. <div>---</div>
    30. <div><span style="color: #569cd6;font-weight: bold;">#### 4. 安全与兼容性</span></div>
    31. <div>| 项目             | 说明                            |</div><div>|------------------|---------------------------------|</div><div>| <span style="color: #569cd6;font-weight: bold;">**公网暴露面**</span>   | 仅代理服务器端一个端口          |</div><div>| <span style="color: #569cd6;font-weight: bold;">**子服务器安全**</span> | 内网隔离,无公网访问风险        |</div><div>| <span style="color: #569cd6;font-weight: bold;">**J2ME 兼容**</span>    | 提供简化 API,支持老旧设备      |</div><div>| <span style="color: #569cd6;font-weight: bold;">**BLE 安全**</span>     | 使用系统级配对 + 应用层令牌绑定 |</div>
    32. <div><span style="color: #569cd6;font-weight: bold;">## 设备绑定与解绑逻辑说明</span></div><div><span style="color: #569cd6;font-weight: bold;">### 一、主设备绑定(将手机或功能机与游戏账号关联)</span></div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**发起绑定**</span></div><div>玩家在 Minecraft 游戏内输入指令 <span style="color: #ce9178;">`/arona bind`</span>,系统将生成一个 <span style="color: #569cd6;font-weight: bold;">**6 位数字绑定码**</span>,并提示该绑定码在 <span style="color: #569cd6;font-weight: bold;">**5 分钟内有效**</span>。</div>
    33. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**设备端操作**</span></div><div>用户在配套的 <span style="color: #569cd6;font-weight: bold;">**Android App**</span> 或 <span style="color: #569cd6;font-weight: bold;">**Symbian J2ME App**</span> 中打开“设备绑定”页面,输入该绑定码。App 会自动采集当前设备的唯一指纹(基于硬件与系统信息生成,不可伪造),并提交至服务器。</div>
    34. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**完成绑定**</span></div><div>服务器验证绑定码有效且设备未被其他账号占用后,将该设备与玩家的游戏 UUID 关联,并标记为<span style="color: #569cd6;font-weight: bold;">**主设备**</span>。</div><div>Android 设备可作为后续可穿戴设备的绑定宿主。</div><div>Symbian 设备仅作为独立主设备,<span style="color: #569cd6;font-weight: bold;">**不能绑定任何子设备**</span>。</div>
    35. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**绑定结果**</span></div><div>绑定成功后,App 将获得一个长期有效的访问令牌(<span style="color: #ce9178;">`device_token`</span>),用于后续所有数据查询与操作。</div>
    36. <div><span style="color: #569cd6;font-weight: bold;">### 二、子设备绑定(将智能手表绑定到已认证的 Android 主设备)</span></div><div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**前提条件**</span></div><div>仅当用户的 <span style="color: #569cd6;font-weight: bold;">**Android 手机 App 已成功绑定游戏账号**</span> 后,才允许绑定可穿戴设备。</div>
    37. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**绑定方式**</span></div><div>  <span style="color: #6796e6;">-</span> 用户在手表端的 Arona 应用中生成一个<span style="color: #569cd6;font-weight: bold;">**绑定二维码**</span>,其中包含手表的设备指纹和类型信息。</div><div>  <span style="color: #6796e6;">-</span> 使用已绑定的 Android 手机 App 扫描该二维码。</div>
    38. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**中继绑定**</span></div><div>手机 App 在识别二维码后,会通过安全通道向服务器发起子设备绑定请求,并声明自身作为该手表的“主设备”。</div>
    39. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**完成绑定**</span></div><div>服务器验证手机身份有效且为 Android 类型后,将手表记录为该玩家名下的<span style="color: #569cd6;font-weight: bold;">**子设备**</span>,并关联到对应手机的绑定记录。</div><div>  <span style="color: #6796e6;">-</span> 子设备<span style="color: #569cd6;font-weight: bold;">**不持有独立访问令牌**</span>,所有操作必须通过手机 App 中继完成。</div><div>  <span style="color: #6796e6;">-</span> 同一玩家可绑定多个子设备,但均需依附于同一个或不同的 Android 主设备。</div>
    40. <div><span style="color: #569cd6;font-weight: bold;">### 三、设备解绑</span></div><div>设备解绑支持<span style="color: #569cd6;font-weight: bold;">**双向操作**</span>,用户既可在游戏内操作,也可在 App 端完成:</div>
    41. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**游戏内解绑**</span></div><div>玩家使用指令 <span style="color: #ce9178;">`/arona unbind <设备ID>`</span>(设备 ID 来自 <span style="color: #ce9178;">`/arona devices`</span> 列表)可解除指定设备的绑定。</div><div>  <span style="color: #6796e6;">-</span> 若解绑的是<span style="color: #569cd6;font-weight: bold;">**主设备**</span>,其下所有关联的子设备将<span style="color: #569cd6;font-weight: bold;">**自动同步解绑**</span>。</div><div>  <span style="color: #6796e6;">-</span> 若解绑的是<span style="color: #569cd6;font-weight: bold;">**子设备**</span>,仅移除该手表记录,不影响主设备。</div>
    42. <div><span style="color: #6796e6;">-</span> <span style="color: #569cd6;font-weight: bold;">**App 端解绑**</span></div><div>用户在 Android 或 Symbian App 的“设备管理”页面中,可选择任意已绑定设备并点击“解绑”。</div><div>  <span style="color: #6796e6;">-</span> App 会通过已有的认证令牌向服务器发起解绑请求。</div><div>  <span style="color: #6796e6;">-</span> 解绑逻辑与游戏内一致:主设备解绑将级联移除其子设备。</div><div><span style="color: #6a9955;">></span> ⚠️ 出于安全考虑,解绑操作需实时生效,且解绑后的设备如需重新绑定,必须重新走完整绑定流程(包括游戏内获取新绑定码)。</div>
    43. <div><span style="color: #569cd6;font-weight: bold;">### 四、安全与限制策略</span></div><div><span style="color: #6796e6;">-</span> 每个绑定码<span style="color: #569cd6;font-weight: bold;">**仅可使用一次**</span>,超时或使用后立即失效。</div><div><span style="color: #6796e6;">-</span> 同一设备指纹在 <span style="color: #569cd6;font-weight: bold;">**24 小时内不可重复绑定**</span>,防止滥用。</div><div><span style="color: #6796e6;">-</span> 每个玩家默认最多可绑定 <span style="color: #569cd6;font-weight: bold;">**5 个主设备(可配置)**</span>,和 <span style="color: #569cd6;font-weight: bold;">**5 个子设备(可配置)**</span>。</div><div><span style="color: #6796e6;">-</span> 只有 <span style="color: #569cd6;font-weight: bold;">**Android 主设备允许绑定子设备**</span>,Symbian 或其他类型主设备不具备此能力。</div>
    44. <div><span style="color: #569cd6;font-weight: bold;">## 数据库设计</span></div><div><span style="color: #569cd6;font-weight: bold;">### 数据库结构</span></div><div><span style="color: #6796e6;">-</span> data.db</div><div>  <span style="color: #6796e6;">-</span> server_tracking</div><div>    <span style="color: #6796e6;">-</span> historical_peak_online</div><div>  <span style="color: #6796e6;">-</span> daily_peak_online</div><div>    <span style="color: #6796e6;">-</span> time (yyyy-mm-dd)</div><div>    <span style="color: #6796e6;">-</span> overall</div><div>  <span style="color: #6796e6;">-</span> sub_server_peak_online</div><div>    <span style="color: #6796e6;">-</span> time (yyyy-mm-dd)</div><div>    <span style="color: #6796e6;">-</span> server_name</div><div>    <span style="color: #6796e6;">-</span> peak_online</div><div>  <span style="color: #6796e6;">-</span> daily_new_players</div><div>    <span style="color: #6796e6;">-</span> time (yyyy-mm-dd)</div><div>    <span style="color: #6796e6;">-</span> overall</div><div>  <span style="color: #6796e6;">-</span> daily_new_players_info</div><div>    <span style="color: #6796e6;">-</span> time (yyyy-mm-ddThh:mm:ssXXX)</div><div>    <span style="color: #6796e6;">-</span> uuid</div><div>    <span style="color: #6796e6;">-</span> original_username</div><div>  <span style="color: #6796e6;">-</span> player_data</div><div>    <span style="color: #6796e6;">-</span> id</div><div>    <span style="color: #6796e6;">-</span> uuid</div><div>    <span style="color: #6796e6;">-</span> username</div><div>    <span style="color: #6796e6;">-</span> first_join_time</div><div>    <span style="color: #6796e6;">-</span> last_login_time</div><div>    <span style="color: #6796e6;">-</span> play_time (HH:mm:ss,时间段)</div><div>  <span style="color: #6796e6;">-</span> player_daily_server_paths</div><div>    <span style="color: #6796e6;">-</span> time (yyyy-mm-ddThh:mm:ssXXX)</div><div>    <span style="color: #6796e6;">-</span> uuid</div><div>    <span style="color: #6796e6;">-</span> from_server</div><div>    <span style="color: #6796e6;">-</span> to_server</div><div>  <span style="color: #6796e6;">-</span> device_bindings</div><div>    <span style="color: #6796e6;">-</span> id</div><div>    <span style="color: #6796e6;">-</span> player_uuid</div><div>    <span style="color: #6796e6;">-</span> device_fingerprint</div><div>    <span style="color: #6796e6;">-</span> device_type</div><div>    <span style="color: #6796e6;">-</span> device_alias</div><div>    <span style="color: #6796e6;">-</span> device_token</div><div>    <span style="color: #6796e6;">-</span> bind_time (yyyy-mm-ddThh:mm:ssXXX)</div><div>    <span style="color: #6796e6;">-</span> last_seen</div><div>    <span style="color: #6796e6;">-</span> is_active</div><div>    <span style="color: #6796e6;">-</span> is_wearable</div><div>    <span style="color: #6796e6;">-</span> master_binding_id</div></div>
    复制代码


    打赏

    0

    收藏

    0

    支持

    0

    反对

    0

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    您需要登录后才可以回帖 登录 | 加入最MC

    本版积分规则