Commit bb31f7d2 authored by 神楽坂玲奈's avatar 神楽坂玲奈

test

parent cfb8273c
......@@ -5,6 +5,7 @@
"requires": true,
"packages": {
"": {
"name": "railgun-routing-client",
"version": "0.0.1",
"devDependencies": {
"@types/node": "^16.6.1",
......
import config from '../config/config.json';
import routers from '../config/routers.json';
import child_process from 'child_process';
export class RouteWriter {
static input: string[] = [];
static reset() {
console.log(`route flush table ${config.table} proto ${config.proto}`);
for (const peer of routers.filter(r => r.id !== parseInt(process.env.RAILGUN_ID) && r.interface)) {
this.input.push(`route flush table ${config.table} proto ${config.proto}`);
for (const peer of routers.filter((r) => r.id !== parseInt(process.env.RAILGUN_ID) && r.interface)) {
this.set(peer.id, peer.id);
}
}
static set(toId: number, viaId: number) {
console.log(toId, viaId);
const to = routers.find(r => r.id == toId);
const via = routers.find(r => r.id == viaId);
const to = routers.find((r) => r.id == toId);
const via = routers.find((r) => r.id == viaId);
for (const address of [to.address, ...to.subnets]) {
console.log(`route replace ${address} dev ${via.interface}`);
this.input.push(`route replace ${address} dev ${via.interface} table ${config.table} proto ${config.proto}`);
}
}
static commit() {
// 可能改成异步的会更好点
child_process.execFileSync('ip', ['-batch', '-'], { input: this.input.join('\n') });
this.input = [];
}
}
......@@ -19,6 +19,7 @@ export class Server {
}
RouteWriter.set(message.to, message.via);
RouteWriter.commit();
this.ack = message.seq + 1;
const response: UploadMessage = {
......@@ -43,11 +44,9 @@ export class Server {
continue;
}
const reliability = (peer.reliability * (config.timeout - step)) / config.timeout;
const { id, delay } = peer;
// jitter 还没算
const reliability = (peer.reliability * (config.timeout - step)) / config.timeout;
// TODO: jitter 没算
p[id] = { delay: Math.round(delay), jitter: 0, reliability };
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment