오늘의 목표

더보기

✔️ 최종 프로젝트 진행


⏱️ 오늘의 일정

최종 프로젝트 진행


📜 최종 프로젝트 진행 ( 채팅 서버 구현 시작 )

 

프로젝트가 게임 종료 처리만 구현하면 기본적인 게임 진행이 완성되어서,

채팅서버 구현을 맡게 되었다.

 

채팅서버는 기존에 배워놨었던 c++에서 구현한 서버를 기반으로 해서 구현하려고 한다.

 update() {
        const now = performance.now();
        
        const elapsed = now - this.lastExecutionTime;

        if (elapsed >= this.updateTime) {

            // 로직 처리
            
            this.lastExecutionTime = now - (elapsed % this.updateTime);
        }
                          
        const delay = this.updateTime - (now - this.lastExecutionTime);
        
        setTimeout(() => this.update(), delay);
    }

 

메인 서버와는 다르게 채팅서버는 update() 함수가 있다.

update() 함수는 60 프레임을 기준으로 루프를 돌면서 로직을 처리한다.

 

메인 서버에서는 핸들러에서 로직을 처리해줬지만,

export class Job {
    public jobType: number;
    public payload: Buffer;
    constructor(jobType: number, payload: Buffer) {
        this.jobType = jobType;
        this.payload = payload;
    }
}

 

채팅 서버에서는 핸들러에서 job을 생성하고, 생성한 job을 채팅 서버에게 전달하면,

채팅 서버에서 로직을 처리하는 방식으로 구현할 예정이다.

 

클라에서 온 패킷을 빠르게 빠르게 조립해서 큐잉만 하고, 채팅 서버에서 직접 처리하는 방식

+ Recent posts