我想构建一个支持聊天的多人网络游戏应用程序。我认为该应用程序将不得不处理数百个同时连接。
我计划将我的应用程序托管在共享网络托管中,它有这些限制(很可能类似于PHP + Comet(长轮询)缩放/主机):
- 看来我不能更改网络服务器。很可能它正在使用 Apache。
- 支持 MySQL 5、PHP 5.3.x、Perl、Python、Ruby on Rails、CGI
(更准确地说,我将使用 HawkHost 的共享虚拟主机。)
这是我的研究结果,然后是我的问题:
- 一些资源(如Python Comet Server)说 PHP 不适合处理并发连接,而 Python 是更好的选择。这是真的?
- 我在 PHP 中尝试过长轮询技术(虽然我不知道它是否正确实现,比如Comet 问题与废弃的打开连接),使用“无限循环,直到数据更改”。方法。这几乎行得通。剩下的问题是,当浏览器关闭时,服务器进程永远不会死掉(服务器不知道连接已经终止,数据永远不会改变)。PHP有什么方法可以检测浏览器是否已终止以停止循环?
我一直在到处寻找答案,但仍然无法得出任何结论。这个话题在 StackOverflow 上也被问过很多次,如果我听起来重复,我很抱歉>.<。
目前,我能够使用 PHP、MySQL 和 JQuery for JS 编写代码。我对 Comet 和 Server Push 这个术语还是很陌生。如有必要,我也愿意学习 Python 等新的脚本语言。
我很欣赏任何关于使用什么脚本语言、框架和技术来启动我的项目的见解。