Commit 33a9d939 authored by 神楽坂玲奈's avatar 神楽坂玲奈

fix

parent dbb5e3c2
Pipeline #15913 passed with stages
in 32 seconds
......@@ -4,7 +4,7 @@ import config from '../config/config.json';
import { RouteWriter } from './RouteWriter';
import { Peer } from './Peer';
import { DownloadMessage, PeerMessage, PeerQuality, UploadMessage } from '../protocol';
import { DownloadMessage, PeerMessage, UploadMessage } from '../protocol';
export class Server {
ack = 0;
......@@ -13,7 +13,7 @@ export class Server {
console.log(message);
if (message.seq && this.ack !== message.seq) {
console.log("seq mismatch rejected");
console.log('seq mismatch rejected');
return;
}
......@@ -39,26 +39,15 @@ export class Server {
}
update(socket: Socket, self: PeerMessage, peers: Peer[]) {
const p: Record<number, PeerQuality> = {};
for (const peer of peers) {
if (peer.reliability === 0) {
continue;
}
// 有几个包没到
const step = Math.max(0, Math.floor((self.time - peer.time + peer.delay - config.interval / 2) / config.interval));
if (step >= config.timeout) {
peer.reset();
continue;
}
const { id, delay } = peer;
const reliability = (peer.reliability * (config.timeout - step)) / config.timeout;
// TODO: jitter 没算
p[id] = { delay: Math.round(delay), jitter: 0, reliability };
}
const message: UploadMessage = { id: self.id, ack: this.ack, peers: p };
const message: UploadMessage = {
id: self.id,
ack: this.ack,
peers: Object.fromEntries(peers.map(peer => [peer.id, {
delay: peer.delay,
jitter: 0,
reliability: peer.reliability
}]))
};
// console.log(message);
socket.send(JSON.stringify(message), config.server_port, config.server_address);
}
......
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