websocket训练地址:https://www.qiulianmao.com,正在搭建中
node -v(显示版本则说明安装成功)
npm install -g require(对库文件的引用库)
npm install -g browserify(这个是用来打包成前端使用的js文件)
npm install google-protobuf(安装google库)
新建case.proto
文件
syntax = "proto3";
message Request{
repeated Headers Headers= 5;
string ContentEncoding = 6;
string ContentType = 7;
bytes Payload = 8;
}
message Headers{
string Key = 1;
string Value = 2;
}
在cmd
中执行
.\protoc --js_out=import_style=commonjs,binary:. case.proto
项目新建main.js
文件
var MessageBody = require('./case_pb');
module.exports = {
DataProto: MessageBody
}
在cmd
中执行,会借助main.js
生成case.js
,这个就可以直接在浏览器中使用了。
browserify main.js > case.js
前端代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="case.js"></script>
</head>
<body>
<script>
let a = new proto.Request()
let b = new proto.Headers()
b.setKey('User-Agent')
b.setValue('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.46')
a.addHeaders(b)
let c = new proto.Headers()
c.setKey('Content')
c.setValue('gzip')
a.addHeaders(c)
a.setPayloadtype('utf-8')
console.log(a.toObject())
let d = a.serializeBinary()
console.log(d)
let e = new proto.Request.deserializeBinary(d)
console.log(e.toObject())
</script>
</body>
</html>
控制台查看结果