2023-03-11 12:54:08 +08:00
2023-03-11 12:50:37 +08:00
2023-03-11 12:50:37 +08:00
2023-03-11 12:50:37 +08:00
2023-03-11 12:50:37 +08:00
2023-03-11 12:50:37 +08:00
2023-03-11 12:50:37 +08:00
2023-03-11 12:54:08 +08:00
2023-03-11 12:50:37 +08:00

需求概述

  • 项目的主要业务需求:

    给定一个服务端模板,开启n个服务器,并在接口请求时返回可用服务器的地址。 管理在线服务器的数量。

  • 项目的非功能需求:

    分布式系统(会同时运行在多台机器上)

功能需求

  • 根据给定的服务端模板,可用端口范围生成多个服务器实例。
  • 回收已经标记为结束的服务器。
  • 接口请求时,返回一个可用的服务器ip。
  • 记录对局的id,开始时间,结束时间,参与玩家id到数据库中。

非功能需求

  • 可以增加机器的数量。例如有A,B两台机器,A机器资源占满,B机器有余量。收到请求时,会在B机器开启新的服务器并返回ip
  • 保持一定数量的可用服务器,在请求时可以立刻返回。

界面设计和交互

无ui需求,bat就行。

接口需求

func getServer()

  • 接口描述:获取一个可用的服务器ip,并记录该对局的参与玩家。

  • 返回值:

    • String类型的ip地址(带端口)

    • Int类型的对局id

  • 参数列表:

    • ArrayList<Player> players

func informEnd()

  • 接口描述:告知系统某个对局结束了

  • 返回值:无

  • 参数列表:

    • int id

func getPlayerServer()

  • 接口描述:获取某个玩家还在进行中的对局的服务器的ip地址

  • 返回值:

    • String 类型的ip地址(带端口),未在对局中返回null
    • Int 类型的对局id,未在对局中返回-1
  • 参数列表:

    • (Player player)

func containPlayer

  • 接口描述:查询某个玩家是否在对局中。

  • 返回值:

    • bool
  • 参数列表:

    • (Player player)
S
Description
No description provided
Readme
195 KiB
Languages
Kotlin 93.3%
Java 6.7%