Commit 83b41c06 authored by 神楽坂玲奈's avatar 神楽坂玲奈

test

parent 70599466
......@@ -16,8 +16,8 @@ export interface UploadMessage {
// 中心服务器向路由器发送的消息
export interface DownloadMessage {
seq: number,
to: number,
via: number;
via: Record<number, number>,
plan: Record<number, number>
}
// 路由器向路由器发送的消息
......
......@@ -31,7 +31,7 @@ export class Peer implements PeerMessage, PeerQuality, RouterConfig {
onMessage(data: PeerMessage) {
// console.log(data);
if (data.seq == 0 || data.seq < this.seq - config.timeout || data.seq > this.seq + config.timeout) {
if (data.seq === 0 || data.seq < this.seq - config.timeout || data.seq > this.seq + config.timeout) {
// 收到 seq = 0 或 seq 与之前差距较大,就 reset
this.reset();
} else if (data.seq <= this.seq) {
......@@ -51,7 +51,7 @@ export class Peer implements PeerMessage, PeerQuality, RouterConfig {
}
update(time: number) {
if (this.reliability == 0) {
if (this.reliability === 0) {
return;
}
// 有几个包没到
......
......@@ -12,8 +12,8 @@ export class RouteWriter {
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}`);
}
......
......@@ -10,7 +10,7 @@ export class Server {
ack = 0;
onMessage(socket: Socket, message: DownloadMessage, self: PeerMessage) {
if (message.seq && this.ack != message.seq) {
if (message.seq && this.ack !== message.seq) {
return;
}
......@@ -18,7 +18,10 @@ export class Server {
RouteWriter.reset();
}
RouteWriter.set(message.to, message.via);
for (const [to, via] of Object.entries(message.via)) {
RouteWriter.set(parseInt(to), via);
}
this.ack = message.seq + 1;
const response: UploadMessage = {
......
......@@ -18,7 +18,7 @@ const socket = dgram
})
.on('message', (msg, rinfo) => {
try {
if (rinfo.address == config.server_address && rinfo.port == config.server_port) {
if (rinfo.address === config.server_address && rinfo.port === config.server_port) {
// from server
const message: DownloadMessage = JSON.parse(msg.toString());
server.onMessage(socket, message, self);
......@@ -27,7 +27,7 @@ const socket = dgram
const message: PeerMessage = JSON.parse(msg.toString());
assert(message.id);
const peer = peers.find(p => p.id === message.id);
assert(peer && rinfo.address == peer.address && rinfo.port == config.port);
assert(peer && rinfo.address === peer.address && rinfo.port === config.port);
peer.onMessage(message);
}
} catch (e) {
......@@ -35,7 +35,7 @@ const socket = dgram
}
});
socket.bind(config.port, routers.find(r => r.id == self.id).address);
socket.bind(config.port, routers.find(r => r.id === self.id).address);
setInterval(() => {
self.time = Date.now();
......
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