【问题标题】:Multiplayer ping-pong game using websockets and canvas使用 websockets 和画布的多人乒乓球游戏
【发布时间】:2012-11-01 16:20:37
【问题描述】:

我正在使用 sockets.io 和 html5 画布创建一个多人乒乓球游戏。

我的节点服务器正在计算球的位置 (x,y) 并以 30 fpr 将其发送到客户端的画布。

我的问题是是否可以使用 websocket 每秒向客户端发送 30 条消息?我的服务器和客户端位于很远(我们的服务器和澳大利亚的浏览器)。

如果可以通过任何其他更好的方式完成,请建议我。

【问题讨论】:

  • 小心乒乓之类的游戏,Atari 非常重视它们。我今年 16 岁,我收到了他们的律师发来的一封信,信是因为我在 Appstore 上制作了一个“喜欢”乒乓球的应用程序。
  • “澳大利亚的浏览器” - 如果我错了,请纠正我,但澳大利亚的表现“低于”...
  • 是的,Andreas,我很关心性能。
  • 乔丹对不起,我不打算创建 iPhone 应用程序,我正在创建网站。

标签: html node.js websocket socket.io html5-canvas


【解决方案1】:

是的,像 websockets 这样的持久连接是您最好的选择。但是,高延迟并没有什么魔力,您不能在客户所在的地方拥有服务器是什么原因?

【讨论】:

  • 是的,我可以将我的服务器放在我的客户所在的位置,但是使用 websickets 和 html5-canvas 获得 30 fps 仍然可行吗??
  • @user1197280 -- FPS 不是问题。使用 pong,如果您不使用 .requestAnimationFrame,您可以获得 300fps。问题是 RTT:'往返时间,即信息从客户端到服务器并带着新数据返回客户端所需的时间。没有魔杖可以让印度的玩家与美国的服务器对话,而美国的服务器与澳大利亚的玩家对话……数据必须从一个点到下一个点一直传输。如果您的服务器在您旁边,并且两个玩家在您的客厅里,那么是的,100-tick 也可以。但是 AU->US->... ??
  • @Norguard 谢谢。如果我为印度用户构建并且我的服务器在印度,那么是否可以每秒向客户端发送 30 条包含球的 xy 的消息?
  • 我不确定你想让我们告诉你什么 - 在一个完美的世界里,你每秒可以发送一百万条消息。您将需要对此进行测试。 Websocket 是这里最好的选择,所以试试吧。
  • 感谢您的回复,我会试试这个并会在这里发布。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多