oliverde8/mp-dedicated-server-bundle

一个创建简单json api并带有应用缓存的包,简化了对专用服务器信息的访问

1.0.0 2015-04-05 16:51 UTC

This package is auto-updated.

Last update: 2024-09-16 02:41:15 UTC


README

一个创建简单json api并带有应用缓存的包,简化了对专用服务器信息的访问。

Latest Stable Version Total Downloads Latest Unstable Version License

它还有一些内置的块,可用于您的网站

您可能出于以下两个原因使用它;

  • 作为一个中间API来获取服务器信息。因为这个缓存了信息,所以您不必担心影响专用服务器
  • 为了构建您的网站,展示关于您服务器的信息。

此包包含一个jQuery插件,可以使您轻松地将服务器信息显示在任何网页上。(查看演示页面)

## 安装 您当然需要一个工作的symfony安装;

### 依赖关系 首先,如果尚未完成,我们需要向我们的安装中添加doctrine cache。首先将其添加到您的composer

"doctrine/doctrine-cache-bundle": "~1.0",

您还需要在AppKernel中激活这个包

new \Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle(),
new \Kitpages\SemaphoreBundle\KitpagesSemaphoreBundle(),

您需要检查monolog包是否已激活

Symfony\Bundle\MonologBundle\MonologBundle()

### 安装包 将此添加到您的composer文件

"oliverde8/mp-dedicated-server-bundle": "dev-master"

一旦开发的第一阶段完成,将添加版本号以提供更好的支持

您还需要将其添加到AppKernel.php中

new oliverde8\MPDedicatedServerBundle\oliverde8MPDedicatedServerBundle(),

我们还需要定义路由,您可以将前缀更改为您希望的任何内容

oliverde8_mp_dedicated_server:
    resource: "@oliverde8MPDedicatedServerBundle/Resources/config/routing.yml"
    prefix:   /mp/dedicated/api/

配置

编辑config.yml并在其中添加以下内容

#Maniaplanet Dedicated seever configuration
oliverde8_mp_dedicated_server:
    servers :
        login:
            name : "My super server"
            host : "127.0.0.1"
            port : "5001"
            user : "SuperAdmin"
            password : "SuperAdmin"
        login_2:
            name : "My super server #2"
            host : "127.0.0.2"
            port : "5002"
            user : "SuperAdmin"
            password : "SuperAdmin"
    cache:
            info_timeout: 60
            map_timeout: 360
            map_retry_timeout: 60
            chat_timeout: 10

您可以根据需要添加任意数量的服务器,如果您只有一个服务器,您可以删除配置中的第二个。

如您所见,您还可以配置缓存ttl时间。更高的ttl值意味着网站将更少地连接到专用服务器。较低的值可能会导致延迟。

您还需要设置一个要使用的缓存

如果您之前未设置缓存提供程序,请将此添加到文件末尾。

doctrine_cache:
    providers:
        oliverde8_mp_dedicated_server__info:
            type: file_system
            namespace: info_cache

我们还需要设置kitpages信号量设置。

kitpages_semaphore:
    sleep_time_microseconds: 100000
    dead_lock_microseconds: 30000000

锁可以防止在两个用户都跳过缓存的情况下,同时连接到专用服务器。第一个获取信号量的将进行调用,而另一个则需要等待。

完成安装

现在只需运行composer update,它应该会自动完成。

演示

为了检查一切是否正常工作,您可以使用演示页面。为此,我们需要添加一个路由。我们可以将其添加到生产或开发环境中。因此,将其添加到routing_dev.yml中

# oliverde8MPDedicatedServerBundle demo routes (to be removed)
oliverde8_mp_dedicated_server_demo:
    path:     /demo/{login}
    defaults: { _controller: oliverde8MPDedicatedServerBundle:Demo:serverInfo, login: _ }

我们还需要定义演示的资产。在config.yml中找到# Assetic Configuration部分,并将oliverde8MPDedicatedServerBundle添加到包列表中。它应该看起来像这样

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ oliverde8MPDedicatedServerBundle ]

您应该已经准备好了。

检查演示页面以查看一切是否正常工作

app_dev.php/demo

关于演示

尽管我称之为演示,但如果您不想花费时间构建一个显示服务器信息的网站,您也可以使用这个页面。我将继续努力使其更易于显示并具有所有必需的功能。

当然,您需要更改路由参数,以便在具有更友好URL的生产环境中访问。

访问API

您可以从以下URL访问API

/mp/dedicated/api/<login>/info.json
/mp/dedicated/api/<login>/maps.json
/mp/dedicated/api/<login>/chat.json

关于API和缓存的更多信息

目前,该API仅收集服务器信息。这基本上包括以下信息

  • 服务器选项
  • 服务器名称
  • 服务器注释
  • 游戏模式
  • 运行环境
  • ladderServerLimitMax
  • ...
  • 玩家列表
  • 昵称
  • 登录
  • ...
  • 观众列表
  • 当前地图
  • 地图列表
  • 目前缺少一些地图信息。
  • 聊天行

默认情况下,为了尽可能快地收集数据,服务器选项、玩家列表和当前地图每分钟更新一次。

另一方面,地图列表每小时检索一次。

聊天行每10秒检索一次。当然,您可以进行配置。

使用已安装版本

如果您获得已安装的版本,则需要编辑配置以添加自己的服务器

在app/config.yml中找到以下内容

#Maniaplanet Dedicated seever configuration
oliverde8_mp_dedicated_server:
    servers :

在这里,您需要逐个设置每个服务器。默认情况下,有2个示例配置。

完成后,如果您在Windows上,请删除app/cache目录;在Linux上,只需使用app/console cache:clear --env="prod"即可

然后,在浏览器中打开web目录。

更多信息

如果您查看代码,您会看到我所说的登录在该代码中并未用于该目的,实际上它只是一个识别服务器的键。您也可以使用其他内容。

待办事项

此包仍在开发中,这就是为什么还没有发布的原因。

  • 清理代码
  • 注释代码
  • 向jQuery插件添加事件和钩子
  • 使jQuery插件更可配置
  • 将缺少的数据添加到API返回的JSON中?等待请求