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

test

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