PlanetServer는 클라이언트와 서버 사이에 중간 계층을 제공하여 다중 사용자 가상 환경을 개발하는 데 사용됩니다. 소켓을 사용하여 한 클라이언트에서 전송 된 메시지를 다른 모든 클라이언트에게 전달할 수 있습니다. PlanetServer는 현재 Android/iOS/Windows/Max/Linux 플랫폼을 지원합니다. TCP에서 사용자 정의 프로토콜을 사용하며 곧 UDP도 지원할 것입니다. ## 디렉토리
PlanetServer에는 알아야 할 몇 가지 주요 디렉토리가 있습니다
LIB - 서버가 필요한 모든 종속성을 포함합니다. '
Extension - 게임 확장자 JAR 및 Extension에 필요한 기타 사용자 정의 종속성이 포함되어 있습니다.
conf - 서버의 구성 파일과 Log4J (Logging)의 구성 파일도 포함됩니다.
##구성
PlanetServer에는 Conf 폴더에 config.properties 파일이 포함되어 있습니다. 이 파일을 편집하여 서버의 특정 설정을 설정할 수 있습니다.
Server.tcp. 포트 설정은 서버가 듣고있는 포트를 구성하는 데 사용됩니다.
Server.threads.Executor 설정은 ThreadPool의 스레드 수를 구성하는 데 사용됩니다. 성능의 이유로 활동의 양에 따라이 금액을 늘리고 싶을 것입니다.
서버에 대한 로깅을 구성 할 수있는 log4j.properties 파일도 있습니다. 이에 대한 자세한 내용은 LOG4J 문서를 참조하십시오.
확장 폴더 안에는 World.Properties 파일이 있습니다. 이 파일에는 게임과 관련된 속성이 포함되어 있으며 게임 코드를 통해 액세스 할 수 있습니다. 여기서 필요한 유일한 속성은 응용 프로그램의 주요 진입 점을 가리키는 Extension.class.name입니다. 제공된 예제에는이 구성이 구성되어있어 자신의 확장자에 대해 클래스 이름을 변경하십시오.
## 확장 응용 프로그램을 만들 때 PlanetServer에 대한 확장을 만듭니다. 확장자는 단순히 응용 프로그램에 필요한 모든 필요한 JAR 파일이있는 확장자 폴더 내부에 배치되는 JAR 파일입니다. 진입 점의 연장에 대한 메인 클래스를 작성해야합니다. 메인 클래스는 PSEXTENSION에서 확장하고 INIT 및 DAVERE 방법을 무시해야합니다. 예를 들어
public class WorldExtension extends PSExtension {
@Override
public void init()
{
}
@Override
public void destroy()
{
super.destroy();
}
}
사용자 정의 기능을 Init에 넣고 방법을 파괴하십시오. 여기에는 응용 프로그램에 필요한 사용자 정의 코드가 포함될 수 있습니다.
## 확장 요청 서버에 사용자 정의 명령을 보내려면 요청 핸들러에 대해 사용자 정의 클래스를 등록해야합니다. 예를 들어, 플레이어가 있고 플레이어를 위해 무언가를하도록 요청을 보내고 싶다고 가정 해 봅시다. 먼저 요청 핸들러 addRequestHandler ( "Player", PlayerRequest.class)를 추가합니다. 그런 다음 BasicclientRequestHandler에서 연장되는 PlayerRequest Java 파일을 만듭니다. HandleClientRequest 메소드를 무시한 다음 전송 된 요청을 구문 분석 할 수 있습니다.
모든 명령은 도트 표기법을 사용하여 전송됩니다. 예를 들어 플레이어로 시작하는 모든 것. 문자열 "플레이어"에 등록 된 요청 핸들러에 의해 처리됩니다. 일부 예제 명령은 player.save, player.load, player.move 등 일 수 있습니다. 좋은 방법은 명령의 열거를 갖는 다음 Java 파일에 따라 명령을 별도로 처리하기 위해 스위치 문을 작성하는 것입니다. 샘플 Java 파일에서 예제를 볼 수 있습니다.
다음 주요 버전 1.1에 대한 ## 향후 계획은 UDP 메시징을 지원합니다. 우리는 이것이 더 높은 메시지 속도 게임에 필요하다고 생각합니다.