作为一个有逼格的实时动态网站,websocket是必不可少的;对于数据量不大的场景,使用json传递数据便绰绰有余了。然后当你想偷懒,直接这么写的时候,老板就会来敲打你的狗头:“现在数据量变多了,网站怎么不动了啊?”
于是,必须使用protobuf了。
protobuf的简介就不多说了,百度都有。
先是本篇中用到的proto定义,具体意义便不用细究了,只是举个例子而已。
syntax = "proto3";
package dsproto;
message EluItem {
uint32 timestamp = 1;
string label = 2;
string name = 3;
float price = 4;
float vol = 5;
float bsv = 6;
float ssv = 7;
float highLimit = 8;
float lowLimit = 9;
}
enum MsgType {
SINGLE_ELU = 0;
ALL_ELU = 1;
}
message Msg{
MsgType type = 1;
oneof content {
SingleEluWrapper singleEluWrapper = 2;
AllEluWrapper allEluWrapper = 3;
}
}
message SingleEluWrapper {
EluItem eluItem = 1;
}
message AllEluWrapper {
repeated EluItem eluItems = 1;
}