【问题标题】:How do multiplayer javascript games communicate with servers?多人 JavaScript 游戏如何与服务器通信?
【发布时间】:2021-04-22 23:33:02
【问题描述】:

在线 javascript 游戏(如 agar.io、slither.io 和所有其他“.io”游戏)如何与其服务器通信?我在谷歌浏览器上打开了网络标签,但没有请求。谷歌浏览器会隐藏这些请求还是这些网站使用不同的协议?

【问题讨论】:

  • 他们没有。他们只是模拟其他用户。通过启动游戏并断开网络电缆向自己证明这一点。
  • @RainbowDash 不,这些用户不是模拟的。我可以在其中一些网站上和我的朋友一起玩。当我断开网络连接时,它显示“您已断开连接”并且游戏停止。
  • PSA:您的浏览器开发工具不会向您隐藏请求,除非您自己专门过滤掉它们。
  • 它可能是以下之一:普通 HTTP(S)、WebSockets 或 WebRTC。我相信前两个会默认出现在网络面板中,因此您可以通过访问chrome://webrtc-internals 页面获得更多信息。 Further reading
  • @spender 我从来不知道 WebRTC 被用于这种东西。非常感谢:)

标签: javascript


【解决方案1】:

很可能是 WebSocket。例如,在 agar.io 中,如果您进入 chrome 网络选项卡,您可以看到一个 WebSocket 请求:

点击它,我们会看到以下 WebSocket 数据包正在传输和接收:

绿色为发送数据包,红色为接收数据包。如果您单击其中一个数据包,您可以看到数据包的十六进制转储。如果你想了解更多关于 WebSockets 的信息,你可以去here。一个好的 WebSocket 库是 socket.io,你可以了解 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 2021-05-08
    • 1970-01-01
    • 2013-06-13
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    相关资源
    最近更新 更多