오늘의 목표

더보기

✔️ 서버 전용 더미 클라 


⏱️ 오늘의 일정

서버 전용 더미 클라


📜 서버 전용 더미 클라

 

서버 스트레스 테스트를 하기 위해 더미 클라를 작성하고 있다.

class Client {
    private clientSocket: any;

    constructor() {
        this.clientSocket = new net.Socket();
    }

    connect() {
        this.clientSocket.connect(5555, "127.0.0.1", async () => {
            console.log(`"127.0.0.1" : 5555 서버와 연결`);

            setTimeout(() => {
                const registerPacket = CreatePacket(config.packetType.REGISTER_REQUEST, "1.0.0", 1, {
                    id: "123",
                    password: '123',
                    email: '123'
                });

                this.clientSocket.write(registerPacket);
            }, 2000);

            this.clientSocket.on('data', (data: Buffer) => {
                let offset = 0;

                const packetType = data.readUInt16BE(offset);
                offset += 2;

                const versionLength = data.readUInt8(offset);
                offset += 1;

                const version = data.subarray(offset, offset + versionLength).toString('utf-8');
                offset += versionLength;

                const sequence = data.readUInt32BE(offset);
                offset += 4;

                const payloadLength = data.readUInt32BE(offset);
                offset += 4;

                const payload = data.subarray(offset, offset + payloadLength);
                const packet = protoMessages.packet.GamePacket;

                const payloadData = packet.decode(payload);

                switch (packetType) {
                    case config.packetType.REGISTER_RESPONSE:
                        console.log("payloadData", payloadData);
                        break;
                }

            });
        });
    }
}

const dummyClient = new Client();
dummyClient.connect();

 

우선 간단하게 서버로 접속하고 서버 한테 응답 패킷을 받는지 확인하는 것까지만 했다.

내일 부터 본격적으로 채팅서버와 게임서버에 접속하고 게임 진행 및 채팅 전송까지 시나리오 대로

더미 클라를 조정하는 코드를 작성해 스트레스 테스트를 진행해야겠다.

 

 

+ Recent posts