跳到主要内容

会话与追踪

每个玩家可以拥有一个独立的数据包会话(PacketSession),用于控制该玩家的 Tap 启用状态和查看追踪记录。

会话机制

  • 每个玩家对应一个 PacketSession,由 PacketService 管理
  • 你可以针对单个玩家启用或禁用特定的 Tap,而不影响其他玩家
  • 会话在玩家连接时开启,断开时关闭

追踪记录

当 Tap 定义中设置了 tracking: true 时,匹配到的数据包信息会被记录到该玩家的会话中。每条追踪记录包含以下信息:

字段说明
tapId触发记录的 Tap ID
direction数据包方向(SEND / RECEIVE)
packetName数据包类名
timestamp记录时间戳
variables附加变量(如果 Tap 配置了 parse: true,会包含解析出的字段)

查询追踪记录

你可以通过 trace(limit) 方法获取玩家最近的追踪记录,limit 参数指定返回的最大条数。

这在调试数据包问题时非常有用 —— 开启追踪后,让玩家执行特定操作,然后查看追踪记录来确认数据包的收发情况。

典型用法

  1. 编写一个 Tap 定义,设置 tracking: true 来监听目标数据包
  2. 玩家进入服务器后,会话自动创建
  3. 玩家执行操作,触发数据包收发
  4. 通过会话的 trace() 查看记录,确认数据包是否按预期收发
提示

追踪记录会占用内存,调试完成后建议关闭不需要的 Tap 的 tracking 选项。