เจนเจพเจ เจนเจฐ เจเฉเจ
เจเจธ เจฌเจธเฉฐเจค เจตเจฟเฉฑเจ เจฎเฉเจจเฉเฉฐ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ เจฎเจฟเจฒเจฟเจ เจเจฟเจธ เจตเจฟเฉฑเจ เจฎเฉเฉฐเจกเจฟเจเจ เจจเฉ เจกเฉเจเจพ 2 เจธเจฐเจตเจฐ เจธเฉฐเจธเจเจฐเจฃ 2014 เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเจฒเจพเจเจฃเจพ เจนเฉ เจ เจคเฉ, เจเจธเจฆเฉ เจ เจจเฉเจธเจพเจฐ, เจเจธ 'เจคเฉ เจเฉเจกเจฃเจพ เจธเจฟเฉฑเจเจฟเจ เจนเฉเฅค เจฎเฉเจ เจเจธ เจเฉเจก เจฆเจพ เจฌเจนเฉเจค เจตเฉฑเจกเจพ เจชเฉเจฐเจธเจผเฉฐเจธเจ เจนเจพเจ, เจ เจคเฉ เจฎเฉเจ เจเจชเจฃเฉ เจฌเจเจชเจจ เจตเจฟเฉฑเจ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจฒเฉเจจ เจเจฐเจจ เจฆเฉ เจเจธ เจตเจฟเจฒเฉฑเจเจฃ เจฎเฉเจเฉ เจจเฉเฉฐ เจจเจนเฉเจ เจเฉเจ เจธเจเจฆเจพเฅค
เจฎเฉเจ เจฌเจนเฉเจค เจกเฉเฉฐเจเจพเจ เจจเจพเจฒ เจเฉเฉฑเจเฉ เจชเจพเจ, เจ
เจคเฉ เจ
เจเจฟเจนเจพ เจนเฉเจเจ เจเจฟ เจฎเฉเจ เจเฉฑเจ เจกเจฟเจธเจเจพเจฐเจก เจฌเฉเจ เจฒเจฟเจเจฟเจ เจเฉ เจฒเจเจญเจ เจธเจพเจฐเฉเจเจ เจเจพเจฐเจเจธเจผเฉเจฒเจคเจพเจตเจพเจ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉ เจเฉ เจเฉเจฎ เจฆเฉ เจชเฉเจฐเจพเจฃเฉ เจธเฉฐเจธเจเจฐเจฃ เจตเจฟเฉฑเจ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉเจ เจนเฉ, เจ
เจฐเจฅเจพเจค เจฎเฉเจเจฎเฉเจเจฟเฉฐเจเฅค
เจฌเฉเจ เจจเจพเจฒ เจธเจพเจฐเฉเจเจ เจเจพเจขเจพเจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจฒเจพเจฌเฉ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจธเฉเฅค เจ
เจธเฉเจ เจเฉฑเจ เจธเฉเจจเฉเจนเฉ เจฒเจ 10 เจชเฉเจฐเจคเฉเจเจฟเจฐเจฟเจเจตเจพเจ เจเจเฉฑเจ เฉเจเจ เจเฉเจคเฉเจเจ เจ
เจคเฉ เจเฉฑเจ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจเจเฉฑเจ เจพ เจเฉเจคเจพ, เจเจพเจ เจเฉฑเจ เจธเจฅเจพเจจเจ เจฒเจพเจฌเฉ เจฆเฉ เจฎเฉเจเจผเจฌเจพเจจเฉ เจเฉเจคเฉเฅค
เจเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฐ เจตเจเฉเจ เจฎเฉเจฐเจพ เจธเฉเจญเจพเจ
เจเฉฐเจจเจพ เจนเฉฑเจฅเฉเจ เจเฉฐเจฎ เจฆเจพ เจธเจพเจฎเฉเจนเจฃเจพ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ เจธเฉ, เจ
เจคเฉ เจฐเจพเจคเฉ-เจฐเจพเจค เจฎเฉเจ เจฌเฉเจ เจฆเจพ เจธเจญ เจคเฉเจ เจธเจฐเจฒ เจธเฉฐเจธเจเจฐเจฃ เจคเจฟเจเจฐ เจเฉเจคเจพ, เจเจฟเจธ เจจเฉ 10 เจฒเฉเจ เจนเฉเจฃ 'เจคเฉ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจนเฉ เจเฉฑเจเจพ เจเฉเจคเจพเฅค
เจฎเฉเจ เจคเฉเจฐเฉฐเจค เจจเฉเจกเจ เจตเจฟเฉฑเจ เจฒเจฟเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ, เจเจฟเจเจเจเจฟ เจฎเฉเจจเฉเฉฐ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจชเจพเจเจฅเจจ เจชเจธเฉฐเจฆ เจจเจนเฉเจ เจนเฉ, เจ
เจคเฉ เจฎเฉเจ เจเจธ เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจ เจตเจงเฉเจฐเฉ เจเจฐเจพเจฎเจฆเจพเจเจ เจฎเจนเจฟเจธเฉเจธ เจเจฐเจฆเจพ เจนเจพเจ.
เจกเจฟเจธเจเจพเจฐเจก เจฒเจ เจฌเฉเจ เจฒเจฟเจเจฃ เจฆเจพ เจเจน เจฎเฉเจฐเจพ เจชเจนเจฟเจฒเจพ เจคเจเจฐเจฌเจพ เจนเฉ, เจชเจฐ เจเจน เจฌเจนเฉเจค เจธเจพเจฆเจพ เจจเจฟเจเจฒเจฟเจเฅค เจ เจงเจฟเจเจพเจฐเจค npm เจฎเฉเจกเฉเจเจฒ discord.js เจธเฉเจจเฉเจนเจฟเจเจ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ, เจชเฉเจฐเจคเฉเจเจฐเจฎเจพเจ เจจเฉเฉฐ เจเจเฉฑเจ เจพ เจเจฐเจจ เจเจฆเจฟ เจฒเจ เจเฉฑเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจเฉฐเจเจฐเจซเฉเจธ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจฌเฉเจฆเจพเจ เจตเจพ: เจธเจพเจฐเฉเจเจ เจเฉเจก เจเจฆเจพเจนเจฐเจจเจพเจ "เจฎเฉเจเฉเจฆเจพ" เจนเจจ, เจฎเจคเจฒเจฌ เจเจฟ เจเจน เจฐเจพเจค เจจเฉเฉฐ เจฎเฉเฉ เจฒเจฟเจเจฃ เจฆเฉเจเจ เจเจ เจตเจพเจฐเจคเจพเจตเจพเจ เจตเจฟเฉฑเจเฉเจ เจฒเฉฐเจเฉเจเจ เจนเจจเฅค
เจฎเฉเจเจฎเฉเจเจฟเฉฐเจ เจฆเจพ เจเจงเจพเจฐ เจเฉฑเจ "เจเจคเจพเจฐ" เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉ เจเจฟเจกเจพเจฐเฉ เจเฉเจกเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจ เฉฐเจฆเจฐ เจฐเฉฑเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจนเจเจพ เจฆเจฟเฉฑเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจเจฆเฉเจ เจเจน เจเฉเจ เจเฉเจก เจจเจนเฉเจ เจเจพเจนเฉเฉฐเจฆเฉ เจเจพเจ เจฒเฉฑเจญเจฆเฉ เจนเจจเฅค
เจเจน เจเจน เจนเฉ เจเฉ "เจเจฟเจกเจพเจฐเฉ" เจฆเจพ เจธเจพเจฐ เจฆเจฟเจธเจฆเจพ เจนเฉ. เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจเจน เจกเจฟเจธเจเจพเจฐเจก เจตเจฟเฉฑเจ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจเจชเจญเฉเจเจคเจพ เจเจเจกเฉ เจธเฉ, เจชเจฐ เจธเจพเจเจ เจคเฉเจ เจเฉเจฎเจพเจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ/เจเฉเจเจฃ เจฆเฉเจเจ เจฏเฉเจเจจเจพเจตเจพเจ เจนเจจ, เจชเจฐ เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจเฅค
export enum Realm {
DISCORD,
EXTERNAL,
}
export default class QueuePlayer {
constructor(public readonly realm: Realm, public readonly id: string) {}
public is(qp: QueuePlayer): boolean {
return this.realm === qp.realm && this.id === qp.id;
}
static Discord(id: string) {
return new QueuePlayer(Realm.DISCORD, id);
}
static External(id: string) {
return new QueuePlayer(Realm.EXTERNAL, id);
}
}
เจ เจคเฉ เจเฉฑเจฅเฉ เจเจคเจพเจฐ เจเฉฐเจเจฐเจซเฉเจธ เจนเฉ. เจเฉฑเจฅเฉ, "เจเจฟเจกเจพเจฐเฉ" เจฆเฉ เจฌเจเจพเจ, "เจธเจฎเฉเจน" เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉฑเจ เจเจฌเจธเจเจฐเฉเจเจธเจผเจจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจเจฟเจกเจพเจฐเฉ เจฒเจ, เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจธเจผเจพเจฎเจฒ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจเฉฑเจ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจเจฟเจกเจพเจฐเฉเจเจ เจฒเจ, เจเฉเจฐเจฎเจตเจพเจฐ, เจธเจฎเฉเจน เจฆเฉ เจธเจพเจฐเฉ เจเจฟเจกเจพเจฐเฉเฅค
export default interface IQueue extends EventEmitter {
inQueue: QueuePlayer[]
put(uid: Party): boolean;
remove(uid: Party): boolean;
removeAll(ids: Party[]): void;
mode: MatchmakingMode
roomSize: number;
clear(): void
}
เจฎเฉเจ เจธเฉฐเจฆเจฐเจญ เจฆเจพ เจเจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฒเจ เจเจเจจเจพเจตเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพเฅค เจเจน เจเฉเจธเจพเจ เจฒเจ เจขเฉเจเจตเจพเจ เจธเฉ - เจเจเจจเจพ 'เจคเฉ "10 เจฒเฉเจเจพเจ เจฒเจ เจเฉฑเจ เจเฉเจก เจฒเฉฑเจญเฉ เจเจ เจธเฉ", เจคเฉเจธเฉเจ เจจเจฟเฉฑเจเฉ เจธเฉเจจเฉเจนเจฟเจเจ เจตเจฟเฉฑเจ เจเจฟเจกเจพเจฐเฉเจเจ เจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเจพ เจธเฉเจจเฉเจนเจพ เจญเฉเจ เจธเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจตเจชเจพเจฐเจ เจคเจฐเจ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐ เจธเจเจฆเฉ เจนเฉ - เจคเจฟเจเจฐเฉ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจเฉฐเจฎ เจธเจผเฉเจฐเฉ เจเจฐเฉ, เจฒเจพเจฌเฉ เจคเจฟเจเจฐ เจเจฐเฉ เจฒเจพเจเจ เจฒเจ, เจ เจคเฉ เจนเฉเจฐ.
IOC เจฒเจ เจฎเฉเจ InversifyJS เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเจพเจเฅค เจฎเฉเจจเฉเฉฐ เจเจธ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเจพ เจเฉฑเจ เจธเฉเจนเจพเจตเจฃเจพ เจ เจจเฉเจญเจต เจนเฉเฅค เจคเฉเจเจผ เจ เจคเฉ เจเจธเจพเจจ!
เจธเจพเจกเฉ เจธเจฐเจตเจฐ 'เจคเฉ เจธเจพเจกเฉ เจเฉเจฒ เจเจ เจเจคเจพเจฐเจพเจ เจนเจจ - เจ เจธเฉเจ 1x1, เจเจฎ/เจฆเจฐเจเจพ, เจ เจคเฉ เจเฉเจ เจเจธเจเจฎ เจฎเฉเจก เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจนเจจเฅค เจเจธ เจฒเจ, เจเฉฑเจ เจธเจฟเฉฐเจเจฒเจเจจ เจฐเฉเจฎเจธเจฐเจตเจฟเจธ เจนเฉ เจเฉ เจเจชเจญเฉเจเจคเจพ เจ เจคเฉ เจเฉเจฎ เจเฉเจ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจนเฉ.
constructor(
@inject(GameServers) private gameServers: GameServers,
@inject(MatchStatsService) private stats: MatchStatsService,
@inject(PartyService) private partyService: PartyService
) {
super();
this.initQueue(MatchmakingMode.RANKED);
this.initQueue(MatchmakingMode.UNRANKED);
this.initQueue(MatchmakingMode.SOLOMID);
this.initQueue(MatchmakingMode.DIRETIDE);
this.initQueue(MatchmakingMode.GREEVILING);
this.partyService.addListener(
"party-update",
(event: PartyUpdatedEvent) => {
this.queues.forEach((q) => {
if (has(q.queue, (t) => t.is(event.party))) {
// if queue has this party, we re-add party
this.leaveQueue(event.qp, q.mode)
this.enterQueue(event.qp, q.mode)
}
});
}
);
this.partyService.addListener(
"party-removed",
(event: PartyUpdatedEvent) => {
this.queues.forEach((q) => {
if (has(q.queue, (t) => t.is(event.party))) {
// if queue has this party, we re-add party
q.remove(event.party)
}
});
}
);
}
(เจเฉเจก เจจเฉเจกเจฒเจเจผ เจเจน เจตเจฟเจเจพเจฐ เจฆเฉเจฃ เจฒเจ เจเจฟ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฎเฉเจเฉ เจคเฉเจฐ 'เจคเฉ เจเจฟเจนเฉ เจเจฟเจนเฉเจเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉเจเจ เจนเจจ)
เจเฉฑเจฅเฉ เจฎเฉเจ เจฒเจพเจเฉ เจเฉเจคเฉ เจนเจฐเฉเจ เจเฉเจฎ เจฎเฉเจก เจฒเจ เจเจคเจพเจฐ เจธเจผเฉเจฐเฉ เจเจฐเจฆเจพ เจนเจพเจ, เจ เจคเฉ เจเจคเจพเจฐเจพเจ เจจเฉเฉฐ เจ เจจเฉเจเฉเจฒ เจเจฐเจจ เจ เจคเฉ เจเฉเจ เจตเจฟเจตเจพเจฆเจพเจ เจคเฉเจ เจฌเจเจฃ เจฒเจ "เจเจฐเฉเฉฑเจชเจพเจ" เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจฒเจ เจตเฉ เจธเฉเจฃเจฆเจพ เจนเจพเจเฅค
เจเจธ เจฒเจ, เจตเจงเฉเจ เจเฉเจคเจพ, เจฎเฉเจ เจเฉเจก เจฆเฉ เจเฉเจเฉเฉ เจชเจพ เจฆเจฟเฉฑเจคเฉ เจเจฟเจจเฉเจนเจพเจ เจฆเจพ เจตเจฟเจธเจผเฉ เจจเจพเจฒ เจเฉเจ เจฒเฉเจฃเจพ-เจฆเฉเจฃเจพ เจจเจนเฉเจ เจนเฉ, เจ เจคเฉ เจนเฉเจฃ เจเจ เจธเจฟเฉฑเจงเฉ เจฎเฉเจเจฎเฉเจเจฟเฉฐเจ เจตเฉฑเจฒ เจตเจงเฉเจเฅค
เจเจ เจเฉเจธ เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเฉเจ:
1) เจเจชเจญเฉเจเจคเจพ เจเฉเจกเจฃเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเฉ.
2) เจเฉเจ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ, เจเจน Gateway=Discord เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจฏเจพเจจเฉ เจธเฉฐเจฆเฉเจธเจผ 'เจคเฉ เจชเฉเจฐเจคเฉเจเจฟเจฐเจฟเจ เจเจฐเจฆเจพ เจนเฉ:
3) เจเจน เจเฉเจเจตเฉ เจฐเฉเจฎเจธเจฐเจตเจฟเจธ 'เจคเฉ เจเจพเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจเจนเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟ "เจกเจฟเจธเจเฉเจฐเจก เจคเฉเจ เจเฉฑเจ เจเจชเจญเฉเจเจคเจพ เจเจคเจพเจฐ เจตเจฟเฉฑเจ เจฆเจพเจเจฒ เจนเฉเจฃเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเฉ, เจฎเฉเจก: เจ
เจจเจฐเฉเจเจฟเจก เจเฉเจฎเฅค"
4) เจฐเฉเจฎเจธเจฐเจตเจฟเจธ เจเฉเจเจตเฉ เจฆเฉ เจฌเฉเจจเจคเฉ เจจเฉเฉฐ เจธเจตเฉเจเจพเจฐ เจเจฐเจฆเฉ เจนเฉ เจ เจคเฉ เจเจชเจญเฉเจเจคเจพ (เจตเจงเฉเจฐเฉ เจธเจชเจธเจผเจ เจคเฉเจฐ 'เจคเฉ, เจเจชเจญเฉเจเจคเจพ เจธเจฎเฉเจน) เจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉ เจเจคเจพเจฐ เจตเจฟเฉฑเจ เจงเฉฑเจเจฆเฉ เจนเฉเฅค
5) เจเจคเจพเจฐ เจนเจฐ เจตเจพเจฐ เจเจพเจเจ เจเจฐเจฆเฉ เจนเฉ เจเจฆเฉเจ เจเฉเจกเจฃ เจฒเจ เจเจพเจซเจผเฉ เจเจฟเจกเจพเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจเฉ เจธเฉฐเจญเจต เจนเฉเจตเฉ, เจคเจพเจ เจเฉฑเจ เจเจเจจเจพ เจเฉฑเจกเฉ:
private onRoomFound(players: Party[]) {
this.emit("room-found", {
players,
});
}
6) เจฐเฉเจฎเจธเจฐเจตเจฟเจธ เจธเจชเฉฑเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจเจธ เจเจเจจเจพ เจฆเฉ เจฌเฉเจเฉเจจ เจเจฎเฉเจฆ เจตเจฟเฉฑเจ เจนเจฐ เจเจคเจพเจฐ เจจเฉเฉฐ เจเฉเจธเจผเฉ เจจเจพเจฒ เจธเฉเจฃ เจฐเจฟเจนเจพ เจนเฉเฅค เจ เจธเฉเจ เจเจฟเจกเจพเจฐเฉเจเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจเจจเจชเฉเจ เจตเจเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเจพเจ, เจเจนเจจเจพเจ เจคเฉเจ เจเฉฑเจ เจตเจฐเจเฉเจ เจฒ "เจฐเฉเจฎ" เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ, เจ เจคเฉ, เจฌเฉเจธเจผเจ, เจเฉฑเจ เจเจตเฉเจเจ เจเจพเจฐเฉ เจเจฐเจฆเฉ เจนเจพเจ:
queue.addListener("room-found", (event: RoomFoundEvent) => {
console.log(
`Room found mode: [${mode}]. Time to get free room for these guys`
);
const room = this.getFreeRoom(mode);
room.fill(event.players);
this.onRoomFormed(room);
});
7) เจเจธ เจฒเจ เจ เจธเฉเจ "เจธเจญ เจคเฉเจ เจเฉฑเจเฉ" เจ เจฅเจพเจฐเจเฉ - เจเจฒเจพเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจ เจฌเฉเจเจฎ. เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเจน เจเฉเจเจตเฉเจเจผ (เจฎเฉเจ เจธเจฎเจ เจจเจนเฉเจ เจธเจเจฆเจพ เจเจฟ เจเจน เจฐเฉเจธเฉ เจตเจฟเฉฑเจ เจเจฟเฉฐเจจเจพ เจฎเจเจผเจพเจเฉเจ เจฒเฉฑเจเจฆเจพ เจนเฉ) เจ เจคเฉ เจฎเฉเจเจฎเฉเจเจฟเฉฐเจ เจฆเฉ เจตเจชเจพเจฐเจ เจคเจฐเจ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจธเจฌเฉฐเจงเจพเจ เจจเจพเจฒ เจจเจเจฟเฉฑเจ เจฆเจพ เจนเฉเฅค เจฌเฉเจ เจเจเจจเจพ เจจเฉเฉฐ เจธเฉเจฃเจฆเจพ เจนเฉ เจ เจคเฉ DiscordGateway เจจเฉเฉฐ เจธเจพเจฐเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจคเจฟเจเจฐเฉ เจเจพเจเจ เจญเฉเจเจฃ เจฆเจพ เจเจฆเฉเจธเจผ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
8) เจเฉเจเจฐ เจเฉเจ 3 เจฎเจฟเฉฐเจ เจฆเฉ เจ
เฉฐเจฆเจฐ เจเฉเจก เจจเฉเฉฐ เจฐเฉฑเจฆ เจเจฐเจฆเจพ เจนเฉ เจเจพเจ เจธเจตเฉเจเจพเจฐ เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจคเจพเจ เจ
เจธเฉเจ เจเจจเฉเจนเจพเจ เจจเฉเฉฐ เจเจคเจพเจฐ เจตเจฟเฉฑเจ เจตเจพเจชเจธ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจ
เจธเฉเจ เจฌเจพเจเฉ เจธเจพเจฐเจฟเจเจ เจจเฉเฉฐ เจเจคเจพเจฐ เจตเจฟเฉฑเจ เจตเจพเจชเจธ เจญเฉเจเจฆเฉ เจนเจพเจ เจ
เจคเฉ 10 เจฒเฉเจ เจฆเฉเจฌเจพเจฐเจพ เจนเฉเจฃ เจคเฉฑเจ เจเจกเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจเฉ เจธเจพเจฐเฉ เจเจฟเจกเจพเจฐเฉเจเจ เจจเฉ เจเฉเจก เจจเฉเฉฐ เจธเจตเฉเจเจพเจฐ เจเจฐ เจฒเจฟเจ เจนเฉ, เจคเจพเจ เจฆเจฟเจฒเจเจธเจช เจนเจฟเฉฑเจธเจพ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ.
เจธเจฎเจฐเจชเจฟเจค เจธเจฐเจตเจฐ เจธเฉฐเจฐเจเจจเจพ
เจธเจพเจกเฉเจเจ เจเฉเจฎเจพเจ เจตเจฟเฉฐเจกเฉเจเจผ เจธเจฐเจตเจฐ 2012 เจฆเฉ เจจเจพเจฒ VDS 'เจคเฉ เจนเฉเจธเจ เจเฉเจคเฉเจเจ เจเจเจเจ เจนเจจเฅค เจเจธ เจคเฉเจ เจ เจธเฉเจ เจเจ เจธเจฟเฉฑเจเฉ เจเฉฑเจข เจธเจเจฆเฉ เจนเจพเจ:
- เจเจธ เจคเฉ เจเฉเจ เจกเฉเจเจฐ เจจเจนเฉเจ เจนเฉ, เจเฉ เจฎเฉเจฐเฉ เจฆเจฟเจฒ เจตเจฟเฉฑเจ เจฎเจพเจฐเจฆเจพ เจนเฉ
- เจ เจธเฉเจ เจเจฟเจฐเจพเจ 'เจคเฉ เจฌเจเจค เจเจฐเจฆเฉ เจนเจพเจ
เจเฉฐเจฎ เจฒเฉเจจเจเจธ เจเฉฑเจคเฉ เจเฉฑเจ VPS เจคเฉเจ VDS เจเฉฑเจคเฉ เจเฉฑเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ เจนเฉเฅค เจฎเฉเจ เจซเจฒเจพเจธเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจธเจฐเจตเจฐ เจฒเจฟเจเจฟเจ. เจนเจพเจ, เจฎเฉเจจเฉเฉฐ เจชเจพเจเจฅเจจ เจชเจธเฉฐเจฆ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจฎเฉเจ เจเฉ เจเจฐ เจธเจเจฆเจพ เจนเจพเจ? เจเจธ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจเจธ 'เจคเฉ เจฒเจฟเจเจฃเจพ เจคเฉเจเจผ เจ เจคเฉ เจเจธเจพเจจ เจนเฉเฅค
เจเจน 3 เจซเฉฐเจเจธเจผเจจ เจเจฐเจฆเจพ เจนเฉ:
- เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจฐเจตเจฐ เจธเจผเฉเจฐเฉ เจเจฐเจจเจพ - เจเฉฑเจ เจจเจเจธเจผเจพ เจเฉเจฃเจจเจพ, เจเฉเจฎ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ เจเจฟเจกเจพเจฐเฉเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ, เจ เจคเฉ เจชเจฒเฉฑเจเจเจจเจพเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจเฅค เจฎเฉเจ เจนเฉเจฃ เจชเจฒเฉฑเจเจเจจเจพเจ เจฌเจพเจฐเฉ เจจเจนเฉเจ เจฒเจฟเจเจพเจเจเจพ - เจเจน เจฐเจพเจค เจจเฉเฉฐ เจนเฉฐเจเฉเจเจ เจ เจคเฉ เจซเจเฉ เจตเจพเจฒเจพเจ เจจเจพเจฒ เจฒเฉเจเจฐ เจเฉเจซเฉ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจเจนเจพเจฃเฉ เจนเฉเฅค
- เจ เจธเจซเจผเจฒ เจเฉเจจเฉเจเจธเจผเจจเจพเจ เจฆเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจธเจฐเจตเจฐ เจจเฉเฉฐ เจฐเฉเจเจฃเจพ/เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเจจเจพ, เจเจฟเจธ เจจเฉเฉฐ เจ เจธเฉเจ เจธเจฟเจฐเจซเจผ เจนเฉฑเจฅเฉเจ เจธเฉฐเจญเจพเจฒ เจธเจเจฆเฉ เจนเจพเจเฅค
เจเฉฑเจฅเฉ เจธเจญ เจเฉเจ เจธเจงเจพเจฐเจจ เจนเฉ, เจเฉเจก เจฆเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจตเฉ เจเจเจฟเจค เจจเจนเฉเจ เจนเจจเฅค 100 เจฒเจพเจเจจ เจธเจเฉเจฐเจฟเจชเจ
เจเจธ เจฒเจ, เจเจฆเฉเจ 10 เจฒเฉเจเจพเจ เจจเฉ เจเจเฉฑเจ เฉ เจนเฉ เจเฉ เจเฉเจฎ เจจเฉเฉฐ เจธเจตเฉเจเจพเจฐ เจเฉเจคเจพ, เจธเจฐเจตเจฐ เจฒเจพเจเจ เจเฉเจคเจพ เจเจฟเจ เจ เจคเฉ เจนเจฐ เจเฉเจ เจเฉเจกเจฃ เจฒเจ เจเจคเจธเฉเจ เจธเฉ, เจจเจฟเฉฑเจเฉ เจธเฉฐเจฆเฉเจธเจผเจพเจ เจตเจฟเฉฑเจ เจเฉเจฎ เจจเจพเจฒ เจเฉเฉเจจ เจฒเจ เจเฉฑเจ เจฒเจฟเฉฐเจ เจญเฉเจเจฟเจ เจเจฟเจเฅค
เจฒเจฟเฉฐเจ 'เจคเฉ เจเจฒเจฟเฉฑเจ เจเจฐเจจ เจจเจพเจฒ, เจเจฟเจกเจพเจฐเฉ เจเฉเจฎ เจธเจฐเจตเจฐ เจจเจพเจฒ เจเฉเฉเจฆเจพ เจนเฉ, เจ
เจคเฉ เจซเจฟเจฐ เจเจน เจนเฉ เจเจฟเจเฅค ~25 เจฎเจฟเฉฐเจเจพเจ เจฌเจพเจ
เจฆ, เจเจฟเจกเจพเจฐเฉเจเจ เจตเจพเจฒเจพ เจตเจฐเจเฉเจ
เจฒ โเจเจฎเจฐเจพโ เจธเจพเจซเจผ เจนเฉ เจเจพเจเจฆเจพ เจนเฉเฅค
เจฎเฉเจ เจฒเฉเจ เจฆเฉ เจ เจเฉเจฌเจคเจพ เจฒเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจฎเฉเจเจซเฉ เจฎเฉฐเจเจฆเจพ เจนเจพเจ, เจฎเฉเจ เจเฉฑเจฅเฉ เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจจเจนเฉเจ เจฒเจฟเจเจฟเจ เจนเฉ, เจ เจคเฉ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจญเจพเจเจพเจ เจจเฉเฉฐ เจเจเจพเจเจฐ เจเจฐเจจ เจฒเจ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจเฉเจก เจนเฉเฅค เจจเฉเจกเจฒเจเจผ, เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ.
เจเฉ เจฎเฉเจ เจตเจฟเจธเจผเฉ เจตเจฟเฉฑเจ เจฆเจฟเจฒเจเจธเจชเฉ เจตเฉเจเจฆเจพ เจนเจพเจ, เจคเจพเจ เจเฉฑเจ เจฆเฉเจเจพ เจญเจพเจ เจนเฉเจตเฉเจเจพ - เจเจธ เจตเจฟเฉฑเจ srcds (เจธเจฐเฉเจค เจธเจฎเจฐเจชเจฟเจค เจธเจฐเจตเจฐ) เจฒเจ เจชเจฒเฉฑเจเจเจจเจพเจ เจฆเฉ เจจเจพเจฒ เจฎเฉเจฐเฉ เจคเจธเฉเจนเฉ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเจเฉ, เจ เจคเฉ, เจธเฉฐเจญเจต เจคเฉเจฐ 'เจคเฉ, เจเฉฑเจ เจฐเฉเจเจฟเฉฐเจ เจธเจฟเจธเจเจฎ เจ เจคเฉ เจฎเจฟเฉฐเจจเฉ-เจกเฉเจเจพเจฌเจซ, เจเฉเจฎ เจฆเฉ เจ เฉฐเจเฉเจฟเจเจ เจตเจพเจฒเฉ เจเฉฑเจ เจธเจพเจเจ.
เจเฉเจ เจฒเจฟเฉฐเจ:
เจธเจพเจกเฉ เจตเฉเฉฑเจฌเจธเจพเจเจ (เจ เฉฐเจเฉเฉ, เจฒเฉเจกเจฐเจฌเฉเจฐเจก, เจเฉเจเจพ เจฒเฉเจเจกเจฟเฉฐเจ เจชเฉฐเจจเจพ เจ เจคเฉ เจเจฒเจพเจเฉฐเจ เจกเจพเจเจจเจฒเฉเจก) เจกเจฟเจธเจเจพเจฐเจก เจธเจฐเจตเจฐ
เจธเจฐเฉเจค: www.habr.com