UNPKG

forwarder-node

Version:
102 lines (89 loc) 2.57 kB
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);