【问题标题】:Which communication protocal should be used for a low speed internet connection低速互联网连接应使用哪种通信协议
【发布时间】:2016-02-25 14:38:13
【问题描述】:

我正在开发基于客户端-服务器架构的游戏软件。在这里,游戏/客户端与远程服务器通信,以获取存储在服务器上的各种输入参数,这些参数是玩游戏所需的。此过程每 5 分钟发生一次。客户端计算机位于互联网连接速度非常慢的区域。我应该/应该使用什么首选的连接/通信协议? (HTTP、TCP-Sockets)或任何其他。

我的主要目标是减少带宽消耗并加快响应速度,以便即使在低互联网速度下游戏也能流畅运行。

请提出建议。

【问题讨论】:

    标签: sockets tcp client-server communication


    【解决方案1】:

    HTTP 和 TCP 是根本不同的协议,因为它们在不同的层上运行。 HTTP 是在 TCP 等传输层协议之上运行的应用层。

    为了摆脱通过 HTTP(HTTP 标头)传输的不需要的信息,您可能应该创建自己的应用层协议,该协议在 existing transport layer protocol such as TCP or UDP 之上运行。

    但是,如果不了解有关您如何编写游戏以及您希望传输何种信息的更多信息,就很难给出更具体的答案。

    您可能想查看库 MessagePack,它可以很好地为您处理应用层协议。

    【讨论】:

    • 你好 Mathias-S。感谢你的回复。游戏基本上会获取用户帐户信息和玩游戏的可用积分等。所以我想知道我是否应该为此创建一个客户端-服务器套接字或基于 HTTP 的 API 调用机制?应该部署游戏的许多位置的互联网连接速度都非常慢。
    • 客户端-服务器套接字需要传输的信息少于 HTTP。我不知道您使用的是哪种语言,但尽量减少需要发送的字节数是可行的方法:摆​​脱不必要的标头(HTTP),制作自己的协议,只发送所需的位,即如果可用点是整数,确定您需要多大的整数(16 位?24 位?32 位?)并将数字作为字节而不是字符发送(就像您可能使用 HTTP 一样),即通过文本发送 10000 需要 5 个字节,将其作为 16 位数字发送需要 2 个字节。
    • 另外,您可能想查看为您处理此问题的MessagePack。然后你仍然需要对套接字通信进行编码(以避免 HTTP,见上文),但至少你可以在不做太多工作的情况下最大限度地减少需要传输的数据。
    • 当然。非常感谢 Mathias-S 抽出宝贵时间。它有很大的帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-11-25
    • 2015-02-03
    • 2018-08-24
    • 1970-01-01
    • 2016-08-29
    • 2011-08-27
    • 2015-11-15
    • 2012-07-14
    相关资源
    最近更新 更多