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

test

parent 56a3415c
......@@ -21,7 +21,7 @@ export class Quality {
assert(this.cost >= 0);
if (this.reliability === 0) {
// 同样都是不通的,选直连
return 10000 + this.cost;
return Infinity;
} else {
// 公式
return this.delay + (1 - this.reliability) * 6 + this.cost * 0.1;
......
......@@ -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())!;
// 变更
if (from.via.get(to) !== best_route) {
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()}`);
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 ${JSON.stringify(from.route_quality(to, best_route))} metric ${from.route_quality(to, best_route).metric()}`);
from.via.set(to, best_route);
updating = setInterval(() => send_route(from, to, best_route), config.interval);
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