window命令行xxx.bat
@echo on
cd %~dp0
rd /s /q .\java
md java
protoc.exe --java_out=./java push_proto.proto push_proto_inner.proto push_drc.proto push_proto_inner_message.proto
pb文件 xxx.proto
import "push_proto.proto";
package com.xxx.xxx.proto;
option java_multiple_files = true;
option java_package = "com.xxx.xxx.proto"; //java包名
//回执服务中转消息
message ReceiptEntity {
required string message_id = 1; // 消息ID
optional string task_id = 2; // 广播任务ID
optional string app_id = 3; // 应用ID
optional string device_id = 4; // 设备ID
optional string registrationId = 5; // 注册ID
required string url = 6; // 回执URL
optional string param = 7; // 回执透传参数
optional string event_type = 8; // 调用链路事件类型 如push_arrive
}
java代码
ReceiptEntity.Builder receiptEntity = ReceiptEntity.newBuilder();
receiptEntity.setMessageId(messageId);
receiptEntity.setAppId(appId);
receiptEntity.setDeviceId(instantReceiptEntity.getDeviceId());
receiptEntity.setEventType(instantReceiptEntity.getEventType());
receiptEntity.setTaskId("0000");
receiptEntity.setRegistrationId(instantReceiptEntity.getTargetValue());
receiptEntity.setUrl(url);
receiptEntity entity = receiptEntity.build();
byte[] data = receiptEntity.toByteArray();
ReceiptEntity receiptEntity = ReceiptEntity.parseFrom(data);