forwarder-node
Version:
102 lines (89 loc) • 2.57 kB
JavaScript
let forwarder = require('./build/bin/forwarder.node');
let fwd = new forwarder.Forwarder();
fwd.setupLogger();
fwd.setDebug(true);
fwd.setLogLevel(1);
console.log("pid", process.pid);
fwd.initServers([{
"id": 1,
"destId": 3,
"desc": "server_ws_1",
"netType": "ws",
"port": 30502,
"peers": 3000,
"encrypt": false,
"encryptkey": "1234567812345678",
"base64": false,
"compress": false,
}, {
"id": 2,
"destId": 3,
"desc": "server_enet_2",
"netType": "enet",
"port": 20002,
"peers": 3000,
"encrypt": false,
"encryptkey": "1234567812345678",
"base64": false,
"compress": false,
}, {
"id": 3,
"desc": "server_enet_3",
"netType": "enet",
"port": 20003,
"peers": 3000,
"encrypt": false,
"encryptkey": "abcdefghabcdefgh",
"base64": false,
"compress": false,
},]);
// fwd.setProtocolRule(1, 2, "Process");
// fwd.setProtocolRule(2, 2, "Process");
let bigStr = null;
function bigData() {
if (!bigStr) {
bigStr = "";
let singleStr = "hello";
let byteNum = 1024 * 1024 * 64;
let repeat = Math.ceil(byteNum / singleStr.length);
for (let i = 0; i < repeat; i++) {
bigStr += singleStr;
}
}
return bigStr;
}
function test(sID, cID) {
//console.log("test sendText", sID, cID);
fwd.sendText(sID, cID, bigData());
// fwd.sendBinary(serverId, cID, new Buffer(data));
}
const serverIdList = [1, 2, 3];
onPoll = () => {
for (let i = 0; i < serverIdList.length; i++) {
const serverId = serverIdList[i];
fwd.pollOnce(serverId, 0);
const evt = fwd.getCurEvent();
if (evt > 0) {
let sID = fwd.getCurProcessServerID();
let cID = fwd.getCurProcessClientID();
// console.log("evt", evt, "sID", sID, "cID", cID);
switch (evt) {
case 1: // connected
// setInterval(test.bind(null, sID, cID), 5000);
// fwd.sendText(serverId, cID, data);
// fwd.sendBinary(serverId, cID, new Buffer(data));
break;
case 2: // disconnected
// console.log("stat", fwd.stat());
break;
case 3: // message
let packet = fwd.getCurProcessPacket();
console.log("recv:", packet.toString());
break;
}
}
}
setImmediate(onPoll);
};
// setInterval(onPoll, 1);
setImmediate(onPoll);