websocket中,使用protobuf的要点总结

本文总结了在WebSocket中使用protobuf的关键点。后台通过golang将业务bean转化为protobuf bean,序列化后通过BinaryMessage发送。前端使用protobuf.js库,借助pbjs将proto编译为JSON文件,实现解码接收的二进制数据。核心配置是设置WebSocket发送类型为BinaryMessage。
摘要由CSDN通过智能技术生成

作为一个有逼格的实时动态网站,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;
}

1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值