// spot@public.kline.v3.api.pb@@ syntax = "proto3"; option java_package = "com.mxc.push.common.protobuf"; option optimize_for = SPEED; option java_multiple_files = true; option java_outer_classname = "PublicSpotKlineV3ApiProto"; // 这是实际的 K 线数据结构,它现在变成了一个内部的消息 message KlineDataV3 { //K线周期(Min1,Min5,Min15,Min30,Min60,Hour4,Hour8,Day1,Week1,Month1) string interval = 1; // 窗口开始时间戳(秒时间戳) int64 windowStart = 2; // 开盘价 string openingPrice = 3; // 收盘价 string closingPrice = 4; // 最高价 string highestPrice = 5; // 最低价 string lowestPrice = 6; // 成交量 string volume = 7; // 成交额 string amount = 8; // 窗口结束时间戳(秒时间戳) int64 windowEnd = 9; // 注意:如果根据 decode_raw 输出,还有其他内部字段,也在这里添加 } // 这是顶层接收到的消息结构 message PublicSpotKlineV3ApiMessage { // Tag 1 可能包含 Topic 信息 string topic_info = 1; // Tag 3 可能包含 Symbol string symbol = 3; // Tag 4 可能包含某种 ID 或标识符 string id_info = 4; // Tag 5 可能是一个时间戳或版本号,根据值大小和你的需要定义类型 // 1745894084490 看起来像毫秒时间戳 (或者其他什么) // 如果需要解析为数字,使用sint会覆盖不了,所以要用int64。如果不需要深入解析,可以仍然定义为 bytes 或 string int64 timestamp = 5; // Tag 308 是包含实际 K 线数据的嵌套消息 KlineDataV3 kline_data = 308; // <-- 这里的 Tag 编号是 308,类型是我们上面定义的 KlineDataV3 消息 }