会话与追踪
每个玩家可以拥有一个独立的数据包会话(PacketSession),用于控制该玩家的 Tap 启用状态和查看追踪记录。
会话机制
- 每个玩家对应一个 PacketSession,由 PacketService 管理
- 你可以针对单个玩家启用或禁用特定的 Tap,而不影响其他玩家
- 会话在玩家连接时开启,断开时关闭
追踪记录
当 Tap 定义中设置了 tracking: true 时,匹配到的数据包信息会被记录到该玩家的会话中。每条追踪记录包含以下信息:
| 字段 | 说明 |
|---|---|
tapId | 触发记录的 Tap ID |
direction | 数据包方向(SEND / RECEIVE) |
packetName | 数据包类名 |
timestamp | 记录时间戳 |
variables | 附加变量(如果 Tap 配置了 parse: true,会包含解析出的字段) |
查询追踪记录
你可以通过 trace(limit) 方法获取玩家最近的追踪记录,limit 参数指定返回的最大条数。
这在调试数据包问题时非常有用 —— 开启追踪后,让玩家执行特定操作,然后查看追踪记录来确认数据包的收发情况。
典型用法
- 编写一个 Tap 定义,设置
tracking: true来监听目标数据包 - 玩家进入服务器后,会话自动创建
- 玩家执行操作,触发数据包收发
- 通过会话的
trace()查看记录,确认数据包是否按预期收发
提示
追踪记录会占用内存,调试完成后建议关闭不需要的 Tap 的 tracking 选项。