minecraft - 动态服务器发现列表

标签 minecraft service-discovery

我想创建一个应用程序服务器可以联系的 Web 服务,以将自身添加到实现该应用程序的服务器列表中。然后,客户端可以联系该服务以获取服务器列表。类似于 minecraft's heartbeats work用于将您的服务器添加到主服务器列表。

我可以很容易地自己实现它,但我希望有人已经创建了这样的东西。

高级功能会很有用。像:

  • 允许客户端查询特定于应用程序的属性,例如当前连接到服务器的用户数
  • 将服务器列表分布在多台机器上
  • 如果服务器在一段时间内没有发送心跳,则超时列表中的服务器条目

  • 有人知道这样的服务吗?我知道有用于进行本地 LAN 服务发现的开放协议(protocol)和服务器,但这将是一个 WAN 服务。

    最佳答案

    我能找到的与您的预期应用程序相关的协议(protocol)如下:

  • XRDS (eXtensible Resource Descriptor Sequence) .
  • XMPP Service Discovery协议(protocol)。

  • XRDS 文档是迟钝的,但您可以推送 XML 格式的服务描述。服务类型规范可能是通用的,但我因为试图破译委员会的说法而头疼。

    XMPP 服务发现 协议(protocol)(以前称为 Jabber 的协议(protocol)的一部分)看起来也很有希望,但似乎即使您可以推送您的服务描述,他们也希望它是 this list 中提到的服务之一.扩展它会使它变得非标准。

    最后,我找到了一个叫做 的东西。 seap (SErvice Announcement Protocol) .它很旧,摇摇晃晃,来源可能是适当的,它是用 C 和 Perl 编写的,它是一个杂项,但它似乎可以做你想做的事,有点。

    似乎插入服务公告脉冲是一个特定于应用程序且微不足道的问题,几乎没有人考虑解决一般情况。

    我的建议?阅读上面提到的协议(protocol)和资源以获得灵感(我将从 seap 开始),然后编写、实现和 发布 一个通用的(可能是基于 xml 的)协议(protocol)。所有现有的似乎要么是特定于应用程序的、难以理解的,要么是杂乱无章的。

    关于minecraft - 动态服务器发现列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799986/

    相关文章:

    java - 当我装备盔甲时激活的方法

    javascript - 获取 Minecraft 图像

    architecture - 像 Ribbon 这样的客户端负载均衡器如何工作?

    spring-cloud - Eureka 2.0 已停产。 Netflix 现在使用什么服务发现平台?

    蓝牙 UUID 发现

    java - 像 Java 一样在 Rails 中打开 HTTP 连接?

    java - Minecraft Modding Java 编译错误

    java - Minecraft 1.12,服务器未启动。 "Linux external server"

    java - 如何在 Java 中使用自定义端口指向特定 DNS

    microservices - Play Microservices - api 网关和服务发现