Planetserver用於通過在客戶端和服務器之間提供中層來開發多用戶虛擬環境。它使用套接字,因此可以將一個客戶發送的任何消息傳達給所有其他客戶端。 Planetserver目前支持Android/ios/Windows/Max/Linux平台。它使用TCP上的自定義協議,我們很快也將支持UDP。 ##目錄
Planetserver有一些您應該知道的主要目錄
lib - 包含服務器所需的所有依賴項
擴展名- 包含您的遊戲擴展JAR和擴展所需的任何其他自定義依賴項
conf - 包含服務器的配置文件,也包含一個log4j(日誌)的配置文件
##配置
Planetserver在Conf文件夾中包含config.properties文件。可以編輯此文件以為服務器設置特定的設置。
server.tcp.port設置用於配置服務器正在偵聽的端口
server.threads.secutor設置用於配置線程池中的線程數。出於績效原因,您將需要根據活動量增加此數量。
還有一個log4j.properties文件,您可以在其中配置服務器的日誌記錄。有關此的更多詳細信息,請參閱Log4J文檔。
在擴展文件夾內部有一個world.properties文件。該文件包含特定於遊戲的屬性,可以通過您的遊戲代碼訪問。這裡唯一需要的屬性是extension.class.name,它指向應用程序的主要入口點。提供的示例已配置為您自己的擴展名,只需更改類名。
##擴展時,創建應用程序時,您可以創建對Planetserver的擴展名。擴展名只是一個JAR文件,該文件放置在擴展文件夾內部,並帶有所有其他必要的JAR文件。您必須為入口點創建一個主類。主類必須從psextension延伸,並覆蓋初始化和破壞方法。例如
public class WorldExtension extends PSExtension {
@Override
public void init()
{
}
@Override
public void destroy()
{
super.destroy();
}
}
將任何自定義功能放入初始化並破壞方法。這可以包含您應用程序所需的任何自定義代碼。
##擴展請求為了將自定義命令發送到服務器,您必須為請求處理程序註冊自定義類。例如,可以說您有一個玩家,並且想發送請求為玩家做某事。首先添加請求處理程序AddRequestHandler(“ player”,PlayerRequest.Class);然後創建從BasicClientRequestHandler延伸的PlayerRequest Java文件。您覆蓋handleclientrequest方法,然後可以解析發送的請求。
所有命令均使用點表示法發送。例如,任何以玩家開頭的東西。將由為字符串“播放器”註冊的請求處理程序來處理某些示例命令。 Save,player.load,player.move等。一種好方法是枚舉命令,然後您可以編寫一個開關語句以分別處理每個Java文件。您可以在示例Java文件中查看示例。
##下一個主要版本1.1的未來計劃將支持UDP消息傳遞。我們認為這對於一些更高的消息率遊戲是必要的。