-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
Handler 질문 + 11분 질문
22.03.04 17:38 작성 조회수 155
0
강사님이 13분 쯤에 실행 하는 부분에서 똑같이 cmd창에
10명이 입장은되는데 클라에서 보낸 메세지를 서버가 받아서 BroadCast하는 부분이 계속 호출이 안되었었습니다.
거의 3시간동안 뭐가 문제지?? 하다가 찾은 부분이
Server > PacketHandler부분에서
C_chatHandler부분이
이렇게
ClientSession clientSession = new ClientSession(); 되어 있어서
if문에 걸려서 그냥 return 을 해버린거 같은데
인자에 받은 session을 new ClientSession()으로 하게되면
새로 "빈" 갓난아기의?? ClientSession을 다시 만들어 버리기때문에
ClientSession의 Room이 항상 비어있는 상태라
retrun 으로 끝내버리게 되어서
ServerSessionManager의 Register하는 부분에서
_onRecv를 한다음
어떤 행동을 할것인가 == _handler 부분에서 매핑해놓은
C_chatHandler가 호출 되기는 하지만
new ClientSession 때문에 if에 걸려서 바로 return 을 하게 되어서 클라에 뿌려줄 수가 없었다....
그래서 new ClientSession을 하면 안되고
여기서 이어서 받이온 session을 ClientSession으로 캐스팅을 하고
(안에 정보가 있으니까)
이어서 사용을 해야한다. 라고 이해를 했는데 어느정도 맞는 흐름일까요..??
답변을 작성해보세요.
0
답변 1