통신 규칙 설정

Hotaek Han·2022년 12월 29일
0
post-thumbnail

게임메이커 클라이언트와 통신할 때 항상 json 형식으로 보내기로 했다.

이유는 아래와 같다.

  1. 반드시 json형식으로 보내야 할 때가 있다.
  2. 어떤 종류의 통신인지 게임메이커에서 판단해야 한다. 그러려면 모든 통신 규칙을 통일해서 어떤 데이터를 보내던 어떤 종류의 통신인지 알려주는 변수가 있는게 좋을 것 같다.

CONNECT_NEW	10
CONNECT_RETRY	11

ROOM_CREATE	20
ROOM_LOAD_ALL	21
ROOM_LOAD	22

env파일이던 어딘가에 위와 같이 작성해놓고, 임포트 해온다.

_data = {
	NETWORK_TYPE = 10;
    ...
    ...
   
}

이런 식으로 하면 게임메이커에서 데이터를 받자마자 어떤 종류의 통신인지 파악한다. 위의 경우엔 connect_new 새로운 소켓의 연결 뭐 이런거다 (이건 서버에 더 필요할듯)

반대의 경우도 마찬가지다. 게임메이커에서 보낸 데이터를 서버에서 받을 때 어떤 요청이 들어왔는지 바로 확인해서 switch한다. http에선 url로 구분해서 라우터로 처리하던걸 소켓 통신에선 이러한 코드로 처리할 수 있을 것 같다.

이걸 원래 계속 고민하고 있었는데 최종적으로 결정하게 된 계기는 게임메이커에서 객체 별로 통신이 안됐기 때문이다. 무슨 말이냐면 a 버튼에서 서버와 통신을 시도하여 데이터를 받으면 무조건 a 버튼으로 올 줄 알고 a 버튼, b 버튼, c 버튼 다 만들었는데 a 버튼으로 올 줄 알았던 데이터가 b 버튼에도 수신되었다는 뜻이다.

결론적으로 게임메이커에서 대표로 데이터를 수신하는 객체를 만들어서 라우터 기능을 하도록 만들어야 한다. 그러려면 위와 같이 코드를 정해놓고 통신하는게 유리할 것 같다.

이런 식이다.
오오.. 원래 즉흥으로 코드를 썼었는데 지금은 뭔가 체계가 잡힌 느낌이다.

0개의 댓글