package transport // ProtocolPlugin 协议插件接口 // relay.go 通过这个接口适配不同协议,不感知具体协议细节 type ProtocolPlugin interface { // IsControlPacket 判断是否为控制包 // 控制包用于建连协商,需要透传到对端 IsControlPacket(packet []byte) bool // IsDataPacket 判断是否为数据包 // 数据包包含路由标识,需要查表转发 IsDataPacket(packet []byte) bool // ExtractRouteID 从数据包中提取路由标识 // 返回的 route_id 用于查找对应的本地端口 ExtractRouteID(packet []byte) (uint32, error) }