EOSP2P - 通过Epic在线服务实现P2P(概念验证)

EOSP2P - 通过Epic在线服务实现P2P(概念验证)

该模组通过利用Epic在线服务提供的P2P接口,增加了一种多人连接方式。

介绍

本模组旨在通过 Epic Online Service 为客户机端和专用服务器端添加 P2P 连接功能,以便在主机无法直接访问公网 IP(例如处于网络地址转换后)时,提供一种多人联机连接方式。

要求

该模组仅能在以下平台上运行:

  • Windows (x86_64)
  • Windows (arm64)(尚未测试)
  • Linux (x86_64),需 GNU C 库 2.17+ 版本(尚未测试)
  • Linux (arm64),需 GNU C 库 2.17+ 版本
  • MacOS (x86_64),系统版本至少为 OS X 10.15 (Catalina)
  • MacOS (arm64)(尚未测试)
  • 使用 Musl C 的系统可以尝试 gcompat
  • Android 因技术问题不受支持

详情

客户机端

加入游戏

如果模组成功加载并运行,输入格式正确的连接地址,即可像普通服务器地址一样在“添加服务器”和“直接连接”中正常使用。 直接连接 添加服务器

开设局域网

如果模组成功加载并运行,在进行“对局域网开放”操作后,P2P 连接地址也会显示在聊天框中。你可以像原版局域网端口一样点击复制。 对局域网开放后聊天框中的连接地址

服务器端

P2P 连接地址会直接在“Start serving on..”后打印。注意,连接地址不包含括号。 专用服务器日志中的连接地址

命令

以下命令在专用服务器和客户机端上均可使用。

  • /eosp2p status:显示模组是否运行及其原因。
  • /eosp2p eosaddress:显示当前世界的连接地址。如果尚未发布,则会报错。

已知问题(我未能解决的)

  • 频繁的连接和断开可能会引发问题。
  • 可能无法显示正确的关闭原因(因为在关闭原因到达前连接已关闭)。
  • 服务器 PING 功能会显示服务器不可访问,而不会显示延迟。

致谢

本项目使用了以下开源软件库。我们衷心感谢作者和贡献者的卓越工作。