Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP创建实时网站_Php_Python_Node.js_Real Time - Fatal编程技术网

使用PHP创建实时网站

使用PHP创建实时网站,php,python,node.js,real-time,Php,Python,Node.js,Real Time,我目前正在使用PHP和Kohana框架创建一个网站。我希望该站点能够使用实时(或接近实时)数据(例如用于聊天和实时提要)。我需要它能够扩展到数千个并发用户。我读了很多书,仍然不知道最好的方法是什么 有人有过StreamHub的经验吗?是否可以将其与PHP一起使用 我是不是把自己挖到了一个洞里,需要转换语言?我已经看过node js和nowjs,但是我已经厌倦了在Express中编写一段时间的站点代码(我想知道安全漏洞、代码可维护性、缺乏良好的ORM)。我读过Twisted Python,但不知道

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

有人有过StreamHub的经验吗?是否可以将其与PHP一起使用

我是不是把自己挖到了一个洞里,需要转换语言?我已经看过node js和nowjs,但是我已经厌倦了在Express中编写一段时间的站点代码(我想知道安全漏洞、代码可维护性、缺乏良好的ORM)。我读过Twisted Python,但不知道什么web框架可以在上面很好地工作,我不想使用Nevow——也许Django可以很好地与Twisted Python一起使用?我只是希望被指向正确的方向,所以我不会在PHP中走得太远,并意识到我无法获得所需的接近实时的结果


感谢您的帮助。

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

使用jQuery和AJAX(所有javascript),您可以在不重新加载页面的情况下更新页面。我见过类似这样的网站演示了如何使用jQuery进行聊天

我已经看过node js和nowjs,但是 我厌倦了在网站上写一段时间的代码 (我想知道安全问题 漏洞、代码可维护性、缺乏 很好)

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

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

就安全漏洞而言,node.js服务器是年轻的,可能存在漏洞。这些是无法避免的。目前还没有已知的漏洞,我想说的是,它没有太多的脆弱性 然后是IIS/apache/nginx,直到有人指出一个大缺陷

我希望该网站能够使用真实的 时间(或近实时)数据(例如。 用于聊天和实时提要)。我需要 它能够扩展到数千个 并发用户

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

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


Python的twisted/Ruby的EventMachine和nginx可以一起工作,但我没有这些方面的专业知识。至少对于node,您不能意外地调用阻塞库或使用本机阻塞库,因为JavaScript并没有本机IO

语言的选择不是这里的问题。@Brad语言的选择不是问题,Web服务器的选择是问题,语言似乎与服务器有关。我相信像facebook聊天这样的东西实际上是在不使用AJAX的情况下更新聊天窗口的,但通过使用Comet@AdamPointer Comet是AJAX的一个变体。这很有趣。谢谢你的阅读!我站在前面。然而,我的主要观点是,PHP不应该用于smpappas所要求的内容。@Raynos——的确是,不幸的是,现在无法编辑我的评论,但对于所有的学究来说——“在不使用传统AJAX技术的情况下更新聊天窗口”链接现在已经死了,谢谢Raynos。我已经安装了node js和express,现在正在使用它们。到目前为止,我很喜欢这种结构,但我非常支持MVC。我一直在研究MongoDB和Mongoose,以便能够创建实际的模型。关于MVC主题,您知道有什么好的代码示例可以实现MVC for express吗?@smpappas数据库模型和服务器模型之间有很大的区别。如果你想使用MVC和express。我没有看过任何可靠的教程,我打算写一本。github上有一些代码你可以阅读。还有。请随意阅读任何好的资源,如howtonode&感谢您提供的信息。由于我对node还是新手,所以我正在研究Express和主干网以及各种DB选项。我不关心的模型部分,我知道可以按照我的喜好来做。您知道实现视图控制器交互的任何代码示例或应用程序外壳(可能与express和主干网或其他应用程序)吗?我只是试图避免在视图中加入任何真正的逻辑——我的思维方式仍然是PHP风格的,所以我试图弥合这一差距。好的示例代码一直是我学习的最佳方式。再次感谢你的指点。