gpt4 book ai didi

javascript - 用于低延迟网页游戏的 HTTP 或 Websocket?

转载 作者:可可西里 更新时间:2023-11-01 02:32:36 25 4
gpt4 key购买 nike

我是网络开发新手,只想了解一些性能比较。

我正在网络上构建俄罗斯方 block 对战游戏。大多数游戏逻辑都在用 C++ 构建的服务器内部。对于客户,我打算使用 cocos2d-js,它基本上是 javascript。

玩家的行为会影响对手。首先,用户的输入需要正确地到达服务器,服务器将输入应用到逻辑中,并将新的游戏状态发送回客户端。客户端只需要在屏幕上表示 Sprite 。

我最初的计划是用 TCP 套接字实现它,因为它可能需要低延迟。但是,我刚刚意识到我们不在网络上使用 TCP 套接字。

这种应用使用HTTP连接可行吗?我应该尝试网络套接字吗?有什么优点和缺点?

最佳答案

您当然可以为此使用 HTTP,但对于实时通信,最好的选择是使用 websockets。

原始套接字(也称为 TCP 套接字)不是 W3C 标准的一部分。即使某些浏览器有 implemented它们,我建议避免使用它们,除非您不关心使用特定浏览器锁定您的应用程序。

通常,使用 Websockets 将是您的最佳选择,它们提供与原始套接字相同的性能,并且更易于从 JS 使用。不幸的是,使用 C++ 服务器可能会更复杂,因为您的服务器必须实现该协议(protocol),您可以在互联网上找到一些实现,例如 this。例如,一个。

或者,如果您想与客户端/服务器进行更简单的集成,您可以尝试使用 Node.js 来实现您的服务器逻辑并使用 Socket.io处理通信的库,它也将优雅地处理不兼容的浏览器。请注意,Socket.io 使用不同的 protocol ,所以如果您想避免做很多额外的工作,我不建议您尝试将它与您当前的 C++ 服务器一起使用。

总结一下

原始 (TCP) 套接字

  • 优点:更容易与您当前的 C++ 服务器集成
  • 缺点:不能保证浏览器支持,不是(网络)标准,需要更多的同步、通信等工作。

网络套接字

  • 优点:性能与 TCP 套接字相当,更容易实现客户端
  • 缺点:您可能需要在服务器实现方面做更多工作

我个人的建议是尽可能避免使用 TCP 套接字并遵守标准。

编辑:显然,TCP 套接字 might最终成为 W3C 标准,API 仍然是草案(而且是最近的一个),所以我仍然建议不要使用它们(最新的 Chrome 有一个实验性实现)。

关于javascript - 用于低延迟网页游戏的 HTTP 或 Websocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31402494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com