【问题标题】:Multiplayer game in FacebookFacebook 中的多人游戏
【发布时间】:2012-05-04 02:38:08
【问题描述】:

我正在开发一款多人游戏,它将成为 Facebook 应用程序。做了一些研究,我发现对于服务器端推送,我需要 Comet,它最好在 Node.js 或 Python 中实现。

但 Facebook 的 API 只用 javascript 和 PHP 编写。我知道有第三方 API,但我不想使用它们。我猜我可以在 javascript 中完成所有 Facebook 代码客户端,但这会有点困难,尤其是在 PHP 中很容易做到的时候。

据我所知,我的选择总结如下

  1. 放弃服务器端推送并坚持定期 Ajax 请求 + PHP。

  2. 坚持使用 Node.js,离开 PHP 并使用 javascript 进行所有 FB 编程(如果可能的话,我认为是的)。

  3. 在 Apache 中使用服务器端推送(我听说这不是一个好方法)。

  4. 使用像 Java 这样的技术,带有一些彗星支持和 FB API。 (我不知道 Pyhton)。

  5. HTML5 也引入了服务器端更新,也许它可以提供帮助。 (虽然没有考虑太多)

最好的方法是什么?我在 Java、PHP 和 javascript 方面有很好的经验。

【问题讨论】:

标签: facebook node.js comet


【解决方案1】:

All comet 是一个普通的 HTTP ajax 请求,如果没有结果,服务器会故意延迟响应,并继续轮询数据源服务器端,直到有结果或请求超时。如果重要事件相当稀疏(即如果连续很多秒没有更新),则它是推送技术的一个很好的近似值。

我不认为 PHP 一般是一门很棒的语言,但在 PHP 中进行彗星(也称为长轮询)应该不会比在 Python 等中更难。所以如果你没有任何其他原因不使用PHP,那就去吧。您还应该能够通过 Python 或 Javascript/Node.js 等其他语言与 Facebook 的 API 进行交互,而不会遇到太多麻烦。

HTML5 还具有 Web 套接字,它与 HTTP 请求完全不同,并且比长轮询技术具有更好的延迟,尤其是对于非常频繁的更新。 Web 套接字数据更接近您可能想象的“推送”技术的含义——彗星实际上只是通过延迟拉取实现的“推送”的近似值。套接字、comet 还是普通的非延迟 ajax 请求最适合您的游戏,这完全取决于您的游戏和服务器资源的具体情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    相关资源
    最近更新 更多