使用PHP创建实时网站

时间:2011-04-14 13:46:18

标签: php python node.js real-time

我目前正在使用PHP和Kohana框架创建一个网站。我希望网站能够使用实时(或接近实时)数据(例如,用于聊天和实时馈送)。我需要它能够扩展到数千个并发用户。我已经做了很多阅读,但仍然不知道最好的方法是什么。

有没有人有使用StreamHub的经验?可以在PHP中使用它吗?

我是否在这里挖洞并需要切换语言?我查看了节点js和nowjs,但是我对在Express中编写一个while网站感到厌倦(我想知道安全漏洞,代码可维护性,缺乏良好的ORM)。我读过有关Twisted Python的内容,但不知道哪种Web框架能够很好地运行,而且我不想使用Nevow - 也许Django可以很好地用于Twisted Python?我只是想指向正确的方向,所以我不会在PHP中走得太远,并且意识到我无法获得我需要的接近实时的结果。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

  

我看过节点js和nowjs,但是   我对编写一段时间网站感到厌倦   快递(我想知道安全性   漏洞,代码可维护性,缺乏   好的ORM)。

如果你能做JavaScript,我个人可以保证代码的可维护性。我个人认为JavaScript比PHP更易于维护,但这可能是由于缺乏PHP经验。

ORM不是问题,因为node.js支持基于文档的数据库。基于文档的数据库和JSON齐头并进,我发现沙发数据库和它的map / reduce系统易于使用,json感觉很自然。

就安全漏洞而言,是的node.js服务器很年轻,可能存在漏洞。这些是不可避免的。目前还没有已知的漏洞,我想说它不会更容易受到攻击 然后IIS / apache / nginx,直到有人指出一个大缺陷。

  

我想网站能够使用真实   时间(或接近实时)数据(例如   用于聊天和实时馈送)。我需要   它可以扩展到数千个   并发用户。

这样的可伸缩性需要非阻塞IO。这需要一个非阻塞的IO服务器,如nginx或node.js(是阻止IO可以工作,但你需要所以更多的硬件)。

我个人建议在PHP上使用node.js,因为在节点中编写非阻塞IO更容易。您可以在PHP中完成它,但您必须做出所有正确的设计和架构决策。我怀疑是否有任何真正的异步非阻塞PHP框架。

Python的twisted / Ruby的EventMachine和nginx一起工作,但我没有专业知识。至少对于节点,您不会无意中调用阻塞库或使用本机阻塞库,因为JavaScript没有本机IO。

答案 1 :(得分:0)

PHP不是您应该用于网站实时更新的语言。 PHP脚本在HTML(和HTML调用javascript文件)之前首先加载,因此PHP无法为您更新页面。但是,当与AJAX一起使用时(例如,使用jQuery函数调用PHP文件来实时更新页面),您可以以这种方式使用PHP。

使用jQuery和AJAX(所有javascript),在更新页面而不重新加载页面方面可以做很多事情。我见过this one这样的网站,演示了如何使用jQuery进行聊天。