protobuf 编译 java js文件详解

首先下载protobuf.exe

下载地址:https://download.csdn.net/download/qq_34756156/10220137

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;
}
 

编译解释:

工具编译 protoc.exe --java_out=编译的路径 源

java编译
F:\工具\portobuf>protoc.exe --java_out=F:\工具\portobuf\ SubscribeReq.proto

js编译

F:\工具\portobuf>protoc.exe --js_out=import_style=commonjs,binary:. js\MessageBody.proto

node.js编译

npm install -g require(对库文件的引用库)
npm install -g browserify(这个是用来打包成前端使用的js文件)
最后我们执行
npm install google-protobuf
会在当前目录下生成一个文件夹,里面装的就是protobuf的库文件。

都装好以后,只需要再写一个导出文件用browserify执行打包即可

var MessageBody = require(‘./MessageBody_pb‘);  

    module.exports = {
        DataProto: MessageBody
    }  

保存为exports.js。

6.对文件进行编译打包
执行命令
browserify exports.js > MessageBody.js
然后会生成一个MessageBody.js文件。

引入js使用
 <script type="text/javascript" src="./MessageBody.js"></script>
 socket = new WebSocket("ws://localhost:8111/websocket");

 socket.binaryType = "arraybuffer";
  if (event.data instanceof ArrayBuffer){
    proto.messagebody.deserializeBinary(event.data);      //如果后端发送的是二进制帧(protobuf)会收到前面定义的类型
}

var content = new proto.messagebody();
content.setFactory("3G");//厂商
content.setDeviceid(deviceid);//设备id
content.setLength("0009");//长度
content.setType(message);//类型
content.setBody("0,150,56");//内容
var bytes = content.serializeBinary();

原文地址:https://www.cnblogs.com/iathanasy/p/10037436.html

时间: 2024-10-10 18:42:04

protobuf 编译 java js文件详解的相关文章

Java Class文件详解

作者:禅楼望月(http://www.cnblogs.com/yaoyinglong) Java Class文件中包含以下信息: [+]view code ClassFile { u4 magic;                                                                               //模数u2 minor_version;                                                   

关于mongorc.js文件详解

最近阅读了<<mongodb权威指南第二版>>,发现这本书比之前的第一版好,很多地方讲解很详细.下面就翻译下谈下这个文件. 首先,启动shell的时候,mongorc.js文件会被加载自动运行,如果某些脚本会频繁加载,则把它添加在这个文件里面是个好办法. 若想在启动shell的时候,显示一句欢迎语,则在文件中添加脚本即可. 1 var com = ["GoodLuck","Happy"]; 2 var index = Math.floor(M

vue-cli的utils.js文件详解

utils.js文件 // 引入nodejs路径模块var path = require('path')// 引入config目录下的index.js配置文件 var config = require('../config')// 引入extract-text-webpack-plugin插件,用来将css提取到单独的css文件中// 详情请看(1) var ExtractTextPlugin = require('extract-text-webpack-plugin') exports.as

Vue中ESlint配置文件eslintrc.js文件详解

最近在跟着视频敲项目时,代码提示出现很多奇奇怪怪的错误提示,百度了一下是eslintrc.js文件没有配置相关命令,ESlint的语法检测真的令人抓狂,现在总结一下这些命令的解释,方便以后查阅. 默认eslint规则: 代码末尾不能加分号 ;(强迫症的我受不了)代码中不能存在多行空行:(这个我更也忍不了)tab键不能使用,必须换成两个空格:(超级不习惯)代码中不能存在声明了但未使用的变量:(这个我觉得可以有) 最简单的方法,关闭eslint检测,其实很简单,把 build/webpack.bas

package-info.java文件详解

package-info.java文件详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.pacakge-info.java介绍 pacakge-info.java是一个Java文件,可以添加到任何的Java源码包中.pacakge-info.java的目标是提供一个包级的文档说明或者是包级的注释. pacakge-info.java文件中,唯一要求包含的内容是包的声明语句,比如: package com.ch.service; 二.包文档 在

史上最全的maven的pom.xml文件详解

史上最全的maven的pom.xml文件详解 http://www.cnblogs.com/hafiz/p/5360195.html <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h

POM文件详解(1)

POM文件详解 <project xmlns=http://maven.apache.org/POM/4.0.0 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> 1      Parent坐标 <

Eclipse Java Build Path详解

Eclipse Java Build Path详解 1.设置"source folder"与"output folder". * source folder:存放.java源文件的根目录;    * output folder:.class编译输出的根目录:    * 纯“java project”中,一般把"src"设置为source folder,把bin设置为output folder:    * 在“web project”中,一般把&q

Java反射机制详解

Java反射机制详解 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制. 1.关于Class 1.Class是一个类,一个描述类的类(也就是描述类本身),封装了描述方法的Method,描述字段的Filed,描述构造器的Constructor等属性    2.对象照镜子后(反射)可以得到的信息:某个类的数据成员名.方法和构造器.某个类到底实现