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方法,然后可以解析发送的请求。
所有命令均使用点表示法发送。例如,任何以玩家开头的东西。将由为字符串“播放器”注册的请求处理程序来处理某些示例命令可能是player.save,player.load,player.move等。一种好方法是枚举命令,然后您可以编写一个开关语句以分别处理每个Java文件。您可以在示例Java文件中查看示例。
##下一个主要版本1.1的未来计划将支持UDP消息传递。我们认为这对于一些更高的消息率游戏是必要的。