udp-node-fisher
v1.0.4
Published
可靠UDP
Downloads
1
Readme
udp-node-fisher
介绍
主要针对lei-udp这个库重新用ts重写了一遍,优化了结构,修复了原有分包确认包action错误以及模拟丢包中重试部分没有模拟的问题。 这个库主要是对udp协议的封装,增加了udp自动分包,ping,可靠udp传输的功能。 ps:由于传输数据是协议格式,必须前后端都用这个库才可以。
更新列表
安装教程
npm i udp-node-fisher --save
使用说明
客户端使用
import { UDP } from "udp-node-fisher";
var udp_client = new UDP({});
udp_client.on('close', function () {
console.log('udp client closed.')
})
//错误处理
udp_client.on('error', function () {
console.log('some error on udp client.')
})
// 接收消息
udp_client.on('data', (rinfo,msg) => {
// console.log(`receive message from ${rinfo.address}:${rinfo.port}:${msg}`);
let param = JSON.parse(msg.toString());
return param;
})
this._udp.send('127.0.0.1', 4000, {}, () => {
//发送成功回调
});
this._udp.sendR('127.0.0.1', 4000, {}, () => {
//服务器响应收到回调
});
服务端使用
//创建 udp server
this._server = new UDP({ port: port });
// 监听端口
this._server.on('listening', ()=>{
});
//接收消息
this._server.on('data', (linker,msg:Buffer)=>{
let strmsg = msg.toString();
let request: any;
try {
request = JSON.parse(strmsg);
} catch (e) {
console.error(`接收到错误数据${strmsg}-----来源${linkInfo.address}:${linkInfo.port}`);
return;
}
console.log(`收到[${linkInfo.address}:${linkInfo.port}]:${strmsg}`);
});
//错误处理
this._server.on('error', (err)=>{
});