• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

15분 근처부터 Session을 매개변수로 받는 부분

21.01.30 12:04 작성 조회수 172

1

class PacketHandler

    {

        public static void PlayerInfoReqHandler(PacketSession session, IPacket packet)

        {

            PlayerInfoReq p = packet as PlayerInfoReq;

            Console.WriteLine($"PlayerInfoReq : {p.playerId} : {p.name}");

            foreach (PlayerInfoReq.Skill skill in p.skills)

                Console.WriteLine($"Skill({skill.id})({skill.level})({skill.duration})");

        }

    }

위 함수에서 Session을 받아오지만 직접 사용은 하지 않는 이유가 뭔가요? 그냥 공통 인터페이스를 만들어놓은건가요? 그리고 굳이 IPacket으로 받아와서 PlayerInfoReq로 캐스팅하는 부분이 잘 이해가 안가는데 캐스팅 해주는 이유를 알고싶습니다.

답변 2

·

답변을 작성해보세요.

0

hkjin97님의 프로필

hkjin97

질문자

2021.01.31

이해했습니다. 답변 감사합니다.

0

Session은 경우에 따라 요청을 보낸 쪽으로 응답을 보낼 때 필요합니다.

IPacket으로 받지 않고 각각 패킷으로 받게
자동화 코드를 만드는게 까다롭기 때문에 그렇게 만든 것이지만 다른 방식도 상관없습니다.