forwarder-node
Version:
84 lines (71 loc) • 2.09 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": 20002,
"peers": 3000,
"encrypt": false,
"encryptkey": "abcdefghabcdefgh",
"base64": false,
"compress": false,
"address": "localhost",
"isClient": true,
"reconnect": true,
});
fwd.setProtocolRule(serverId, 2, "Process");
const data = "hello, I'm client 2.";
let bigStr = null;
function bigData() {
if (!bigStr) {
bigStr = "";
let singleStr = "a";
let byteNum = 1024 * 1024;
let repeat = Math.ceil(byteNum / singleStr.length);
for (let i = 0; i < repeat; i++) {
bigStr += singleStr;
}
}
return bigStr;
}
let clientID;
function test() {
const cID = 0; // 0: broadcast
const isBroadcast = true;
const isForceRaw = false;
const isBatchMode = false;
// data = new Buffer(data);
fwd.forwardText(serverId, 0, data, 0, 0, isBroadcast, isForceRaw, isBatchMode);
// fwd.sendText(serverId, cID, data);
// fwd.sendBinary(serverId, cID, new Buffer(data));
}
onPoll = () => {
fwd.pollOnce(serverId);
const evt = fwd.getCurEvent();
if (evt > 0) {
let sID = fwd.getCurProcessServerID();
let cID = fwd.getCurProcessClientID();
switch (evt) {
case 1: // connected
clientID = cID;
setInterval(test, 5000);
break;
case 2: // disconnected
break;
case 3:
let packet = fwd.getCurProcessPacket();
//console.log("header clientID", fwd.getCurHeaderClientID());
//console.log("header ip", fwd.getCurHeaderIP());
console.log("recv:", packet.toString());
break;
}
}
setImmediate(onPoll);
};
// setInterval(onPoll, 1);
setImmediate(onPoll);