| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- const kcp = require('./build/Release/kcp');
- const dgram = require('dgram');
- const server = dgram.createSocket('udp4');
- const clients = {};
- const interval = 200;
- const output = function (data, size, context) {
- server.send(data, 0, size, context.port, context.address);
- };
- server.on('error', (err) => {
- console.log(`server error:\n${err.stack}`);
- server.close();
- });
- server.on('message', (msg, rinfo) => {
- const k = rinfo.address + '_' + rinfo.port;
- if (undefined === clients[k]) {
- const context = {
- address: rinfo.address,
- port: rinfo.port
- };
- const kcpobj = new kcp.KCP(123, context);
- kcpobj.nodelay(0, interval, 0, 0);
- kcpobj.output(output);
- clients[k] = kcpobj;
- }
- const kcpobj = clients[k];
- kcpobj.input(msg);
- console.log(1,recv);
- });
- server.on('listening', () => {
- const address = server.address();
- console.log(`server listening ${address.address} : ${address.port}`);
- // setInterval(() => {
- // for (const k in clients) {
- // const kcpobj = clients[k];
- // kcpobj.update(Date.now());
- // const recv = kcpobj.recv();
- // if (recv) {
- // console.log(`server recv ${recv} from ${kcpobj.context().address}:${kcpobj.context().port}`);
- // kcpobj.send('RE-' + recv);
- // }
- // }
- // }, interval);
- });
- server.bind(41234);
|