实现自己的应用层协议和解析器,可以使用于tcp之上。比如在tcp长连接中,我们可以并发请求,但是我们需要解析出每一个请求对应的数据,并且响应需要按序返回(http2.0解决了这个问题),tiny-application-layer-protocol支持在tcp、udp、unix域中,并发请求,响应不需要按序返回。
module.exports = {
FSM,
packet,
seq,// 生成数据包的序列号函数
};
FSM
解析协议的状态机
const fsm = new FSM({cb: function() {}})
cb是解析到一个数据包的时候执行的回调,把字节流交给fsm.run函数处理即可
packet
封包函数packet(string, seq);seq可以不传,默认生成
seq
生成数据包的序列号,用于关联请求和响应
node server.js
node client.js
node delayClient.js