네트워크 통신
서버와 클라이언트간의 소통은 성공적인 모드를 만들기 위해 필수적으로 들어가는 요소중 하나입니다.
네트워크 통신을 하는데에는 두 주 목적이 있습니다:
- 클라이언트에 표시되는 내용이 서버와 "동기화" 되도록 하는 것
- (X, Y, Z) 에 방금 자란 꽃이 바로 클라이언트에 표시되도록 하는 것
- 클라이언트가 서버에게 플레이어의 상태가 변했다고 알려주는 수단이 되는 것
- 플레이어가 키를 눌렀을 때 서버에 알려주는 것
이를 구현하는 가장 일반적인 방법은 클라이언트와 서버가 서로 메시지를 주고 받는 것입니다. 일반적으로, 이 메시지들은 통신 과정을 편하게 하기 위해 여러 데이터가 순서대로 들어있는 구조를 가지고 있습니다.
새로운 패킷은 네오 포지의 RegisterPayloadHandlerEvent
를 통해 등록할 수 있습니다. 이 시스템은 netty 기반으로 제작되었으며 등록시 패킷의 이름, 패킷을 네트워크 버퍼에서 읽고 쓰는 법, 패킷 수신시 실행할 동작이 필요합니다.