Facebook上的多人游戏

我正在做一个多人游戏,这将是一个Facebook应用程序。 做了一些研究,我发现对于服务器端推送,我需要在Node.js或Python中最好实现的彗星。

但Facebook的API只能用JavaScript和PHP编写。 我知道有第三方的API,但我不想和他们一起去。 我可以在JavaScript中做所有的Facebook代码客户端,但是这会有点困难,特别是在PHP中如此容易。

据我所知,我的select总结如下

  1. 让服务器端推送并坚持周期性的Ajax请求+ PHP。

  2. 坚持Node.js并离开PHP,并在JavaScript中做所有的FB编程(如果这甚至可能,我认为是这样)。

  3. 使用服务器端推动Apache(我听说是不是一个好的方式去)。

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

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

哪个是最好的方法去? 我对Java,PHP和JavaScript有很好的经验。

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

我不认为PHP是一个很好的语言,但是在PHP中使用彗星(也称为长轮询)不应该比在Python等中更难。所以,如果你没有其他的理由不使用PHP,然后去为它。 您还应该能够从其他语言(如Python或Javascript / Node.js)与Facebook的API进行交互,而不会有太多的麻烦。

除此之外,HTML5还包括networking套接字,与HTTP请求完全不同,它比长时间轮询技术有更好的延迟,特别是对于非常频繁的更新。 Web套接字数据更接近你所想象的“推”技术手段 – 彗星实际上只是通过延迟拉来实现的“推”的近似值。 无论是套接字还是彗星,或者只是普通的非延迟Ajax请求都最适合您的游戏,完全取决于您游戏的具体情况以及您的服务器资源。