JavaScript 生成 对应的protobuf 对象

在js中 使用 protobuf
正常情况下 下载对应的protoc 文件
下载地址:https://repo1.maven.org/maven2/com/google/protobuf/protoc/

  messagebody.proto

  syntax = "proto3"; 
  message messagebody{
      //工厂 3G
      string factory = 1; 
      //设备id 3918173069
      string deviceId = 2; 
      //内容长度的长度   消息类型+消息主体 = 内容长度
      string length = 3; 
      //消息类型
      string type = 4; 
      //消息主体
      string body = 5; 
      //时间戳
      string timeStamp = 6; 
      //发送人
      string sender = 7; 
      //接收人
      string receiver = 8; 
      //用户组编号
      string groupId =9;
  }

  先使用对应的方法生成对应 js文件
  位置/protoc.exe --js_out=import_style=commonjs,binary:. js\MessageBody.proto

  使用时 需要使用对应的 node进行处理
   初始化node    npm init
  安装使用到的数据
  npm install -g require       (对库文件的引用库) 
  npm install -g browserify    (这个是用来打包成前端使用的js文件)
  npm install  google-protobuf
        
  node 初始化后  在创建 exports.js
            var MessageBody = require('./MessageBody_pb');  

            module.exports = {  
                DataProto: MessageBody  
            }  
  
  保存后 执行  browserify  exports.js > MessageBody.js
  生成后的文件  就可以直接使用 
        //发送的内容给服务器
            var content = new proto.messagebody();
            content.setFactory("3G");//厂商 
            content.setLength("0009");//长度 
            content.setBody("0,150,56");//内容
              
             var bytes = content.serializeBinary();
            //解码操作
            var enChatReqBody = proto.messagebody.deserializeBinary(bytes);
            console.log("解码后:" + enChatReqBody);
posted @ 2020-06-05 15:29  JC-0527  阅读(848)  评论(0编辑  收藏  举报