1

我正在开发一款多人游戏,它将成为 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 方面有很好的经验。

4

1 回答 1

2

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

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

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

于 2012-05-04T03:03:34.903 回答