我们计划构建一个庞大的Web应用程序,提供实时数据更新和显示(如股票市场)。需要有效的服务器 - 客户端双向通信。经过研究html5网络套接字似乎是必须的。但是,有关兼容性和后备以及服务器支持的几个问题。我们需要一个简单而稳定的解决方案,在php优选和apache集成。我们用phpwebsockets和pywebsockets进行了一些测试,但它们似乎不那么稳定。你会建议什么作为一个更稳定的测试解决方案,就像在kaazing可能但在PHP?提前谢谢。
答案 0 :(得分:2)
您要使用的是Socket.IO,它可以解决所有跨浏览器问题,并为旧版浏览器提供无缝回退。 Socket.IO与Node.js一起使用,但现在可以与different server-side languages一起使用。
但是,我 NOT 建议使用带有PHP的Web套接字。因为PHP不是为长时间运行的双向通信而设计的,并且会导致整个Apache进程/线程锁定每个新连接。
我强烈建议在服务器端使用Node.js之类的语言,这样可以轻松处理数千个长时间运行的连接而没有任何问题。
答案 1 :(得分:1)
你尝试过COMET吗?
网上有很多COMET + PHP应用程序样本。
http://www.zeitoun.net/articles/comet_and_php/start
http://ajaxian.com/archives/comet-with-php
http://www.phpclasses.org/blog/post/58-Responsive-AJAX-applications-with-COMET.html
答案 2 :(得分:0)
Nodejs有两个原因:
1:您可以在客户端和服务器上使用相同的语言,因此可以重复使用更多代码。
2:内置事件循环使javascript非常适合那些“做一点点工作然后再睡20秒”的情况。
你必须喜欢javascript才能把它带到服务器上。
答案 3 :(得分:0)
我可能会选择Node.js.虽然我喜欢javascript,但我并没有喝醉Node.js的酷助。 (公平警告......)
但Node.js允许您使用Socket.io - 这就是您希望用于使您的实时通信在“所有”系统上无缝工作的目的。 PHP和Node.js之间的通信可以通过套接字,数据库或其他一些疯狂的东西来处理。
答案 4 :(得分:0)
WebSockets不受支持,而且没有稳定的PHP实现。
你考虑过使用长轮询/ COMET吗?它适用于所有浏览器。