Commit 092d2f14 authored by 神楽坂玲奈's avatar 神楽坂玲奈

test

parent 56a3415c
...@@ -21,7 +21,7 @@ export class Quality { ...@@ -21,7 +21,7 @@ export class Quality {
assert(this.cost >= 0); assert(this.cost >= 0);
if (this.reliability === 0) { if (this.reliability === 0) {
// 同样都是不通的,选直连 // 同样都是不通的,选直连
return 10000 + this.cost; return Infinity;
} else { } else {
// 公式 // 公式
return this.delay + (1 - this.reliability) * 6 + this.cost * 0.1; return this.delay + (1 - this.reliability) * 6 + this.cost * 0.1;
......
...@@ -58,8 +58,8 @@ const socket = dgram ...@@ -58,8 +58,8 @@ const socket = dgram
const best_route = _.minBy(Router.all.filter(router => router.id !== from.id), (router) => from.route_quality(to, router).metric())!; const best_route = _.minBy(Router.all.filter(router => router.id !== from.id), (router) => from.route_quality(to, router).metric())!;
// 变更 // 变更
if (from.via.get(to) !== best_route) { if (from.via.get(to) !== best_route && from.route_quality(to, best_route).metric() + 1 < from.route_quality(to, from.via.get(to)!).metric()) {
console.log(`change: from ${from.id} to ${to.id} current ${from.via.get(to)!.id} quality ${JSON.stringify(from.route_quality(to, from.via.get(to)!))} metric ${from.route_quality(to, from.via.get(to)!).metric()} best ${best_route.id} quality ${from.route_quality(to, best_route)} metric ${from.route_quality(to, best_route).metric()}`); console.log(`change: from ${from.id} to ${to.id} current ${from.via.get(to)!.id} quality ${JSON.stringify(from.route_quality(to, from.via.get(to)!))} metric ${from.route_quality(to, from.via.get(to)!).metric()} best ${best_route.id} quality ${JSON.stringify(from.route_quality(to, best_route))} metric ${from.route_quality(to, best_route).metric()}`);
from.via.set(to, best_route); from.via.set(to, best_route);
updating = setInterval(() => send_route(from, to, best_route), config.interval); updating = setInterval(() => send_route(from, to, best_route), config.interval);
send_route(from, to, best_route); send_route(from, to, best_route);
......
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