微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Kubernetes/Agones 的游戏网络

如何解决使用 Kubernetes/Agones 的游戏网络

我目前正在开发一款多人游戏,旨在处理 20-50 名玩家与单个游戏实例的连接。

我当前的客户端连接模型:

  • 客户端从服务器休息端点请求连接
  • 服务器创建 2 个绑定到随机端口(1 个 tcp 和 1 个 udp)的新套接
  • 客户端得到响应并连接

我看不出这有什么明显的错误,但我现在怀疑这是否是完成游戏服务器连接的一般方式。

为了进一步解释,我正在学习如何使用 Kubernetes 和 agones 通过将它们包装在 Kubernetes pod 中来部署和管理应用程序/游戏实例。我主要使用官方指南 (https://agones.dev/site/docs/getting-started/create-gameserver/) 和相关的 github 示例 (https://github.com/googleforgames/agones/blob/release-1.15.0/examples) 中的信息。

对于 agones,我的理解是客户端连接是通过“GameServer”yaml 中“hostPort”中指定的端口进行的。我之前已经使用普通 Kubernetes 部署了一些实例,使用“hostNetwork=true”选项,通过允许游戏实例直接绑定到主机端口并暴露给外部网络,使我上面的网络模型能够工作。不过,对于 agones,似乎至少不鼓励使用此选项 (https://github.com/googleforgames/agones/issues/1389)。

我当然不是网络方面的专家,所以请原谅我的无知,但是如果我只公开一个端口,在这里如何处理客户端连接?是所有流量都多路复用,还是我可以以某种方式直接将连接传递到其他套接字/端口并让它们自动暴露给外部网络?

解决方法

是否所有流量都被多路复用,或者我可以以某种方式直接将连接传递给其他套接字/端口并让它们自动暴露给外部网络?

我会复用流量。听起来现在您正在使用传入端口来确定“谁是谁”。但您也可以将该信息包含在流向共享端口的数据包中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。