Facebook中的多人游戏
我正在开发一款多人游戏,这将是一个Facebook应用程序。做了一些研究,我发现对于服务器端推送,我需要最好在Node.js或Python中实现的彗星。Facebook中的多人游戏
但Facebook的API只能用JavaScript和PHP编写。我知道有第三方API,但我不想和他们一起去。我可以在JavaScript中做所有的Facebook代码客户端,但是这会有点困难,尤其是当它在PHP中很容易做到时。
据我,我的选择是概述如下
离开服务器端的推送和定期Ajax请求+ PHP坚持。
坚持Node.js并离开PHP,并在JavaScript中做所有的FB编程(如果这甚至可能,我认为是这样)。
使用服务器端推动Apache(我听说这不是一个好的方法)。
使用像Java这样的技术来支持一些彗星和FB API。 (我不知道Pyhton)。
HTML5也引入了服务器端更新,也许它可以提供帮助。 (虽然没有给它太多的想法)
这是最好的方式去?我对Java,PHP和javascript有很好的经验。
所有彗星都是一个普通的HTTP ajax请求,如果没有结果,服务器有意延迟响应,并且继续轮询数据源服务器端,直到出现结果或请求超时。如果重要事件相当稀少(即,如果在没有更新的情况下连续出现多次秒),则这是推送技术的一个很好的近似。
我不认为PHP是一般的伟大语言,但在PHP中使用彗星(也称为长轮询)不应该比在Python等中更难。因此,如果你没有任何其他语言不使用PHP的原因,然后去做。您还应该能够从Python或Javascript/Node.js等其他语言与Facebook的API进行交互,而不会有太多麻烦。
除了别的以外,HTML5还有web套接字,这些套接字与HTTP请求完全不同,比长查询技术有更好的延迟,特别是对于非常频繁的更新。 Web套接字数据更接近您可能想象的“推”技术手段 - 彗星实际上仅仅是通过延迟拉来实现的“推”的近似值。无论是套接字还是彗星,或只是普通的非延迟Ajax请求最适合您的游戏,完全取决于游戏的具体细节和服务器资源。
[如何用PHP实现COMET](http://www.zeitoun.net/articles/comet_and_php/start) –