forwarder-node
Version:
79 lines (67 loc) • 2.19 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);
const serverId = fwd.createServer({
"id": 1,
"desc": "client_enet",
"netType": "enet",
"port": 20003,
"peers": 3000,
"encrypt": false,
"encryptkey": "1234567812345678",
"base64": false,
"compress": false,
"address": "localhost",
"isClient": true,
"reconnect": true
});
fwd.setProtocolRule(serverId, 2, "Process");
// const data = "hello, I'm client 1.";
let bigStr = null;
function bigData() {
if (!bigStr) {
bigStr = "";
let singleStr = "hello";
let byteNum = 1024 * 1024 * 3;
let repeat = Math.ceil(byteNum / singleStr.length);
for (let i = 0; i < repeat; i++) {
bigStr += singleStr;
}
}
return bigStr;
}
function response(hostID, str) {
const isBroadcast = true;
const isForceRaw = false;
const isBatchMode = false;
fwd.forwardText(serverId, 0, str, hostID, 0, isBroadcast, isForceRaw, isBatchMode);
}
setInterval(() => {
fwd.pollOnce(serverId);
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
//fwd.setTimeout(serverId, 0, 1000, 2000);
//fwd.setPingInterval(serverId, 1000);
break;
case 2: // disconnected
console.log("stat", fwd.stat());
break;
case 3: // message
let packet = fwd.getCurProcessPacket();
console.log("header serverID", fwd.getCurHeaderHostID());
console.log("header clientID", fwd.getCurHeaderClientID());
//console.log("header ip", fwd.getCurHeaderIP());
console.log("recv:", packet.toString());
response(fwd.getCurHeaderHostID(), "response:" + packet.toString());
break;
}
}
}, 0.01);