3

我们计划构建一个庞大的 Web 应用程序,提供实时数据更新和显示(例如股票市场)。需要有效的服务器-客户端双向通信。经过研究 html5 web-sockets 似乎是必须的。但是,在兼容性和回退以及服务器支持方面存在一些问题。我们需要一个简单稳定的php优选和apache集成解决方案。我们用 phpwebsockets 和 pywebsockets 做了一些测试,但它们似乎不太稳定。作为更稳定的测试解决方案,您会提出什么建议,比如 kaazing,但在 php 中?先感谢您。

4

5 回答 5

2

您想要使用的是Socket.IO,它处理所有跨浏览器问题并为旧浏览器提供无缝回退。Socket.IO 被设计为与 Node.js 一起使用,但现在可以与许多不同的服务器端语言一起使用。

但是,我建议将 Web Sockets 与 PHP 一起使用。因为 PHP 不是为长时间运行的双向通信而设计的,并且会导致整个 Apache 进程/线程锁定每个新连接。

我强烈建议在服务器端使用像 Node.js 这样的语言,它可以轻松处理数千个长时间运行的连接而不会出现任何问题。

于 2012-02-15T13:13:15.083 回答
1

你试过彗星吗?

网络上有很多 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

于 2012-02-15T12:55:44.833 回答
0

Nodejs 有两个原因:

1:您可以在客户端和服务器上使用相同的语言,从而更多的代码重用。

2:内置的事件循环使 javascript 非常适合那些“做一点工作然后休眠 20 秒”的情况。

你必须喜欢 javascript 才能在服务器上使用它。

于 2012-02-15T12:54:25.880 回答
0

我可能会选择 Node.js。虽然我喜欢 javascript,但我并没有喝醉 Node.js 的酷助手。(公平警告……)

但是 Node.js 允许您使用 Socket.io - 这就是您想要用来让您的实时通信在“所有”系统上无缝工作的东西。PHP 和 Node.js 之间的通信可以通过套接字、数据库或其他一些疯狂的东西来处理。

于 2012-02-15T12:58:50.150 回答
0

WebSocket 没有得到很好的支持,而且没有稳定的 php 实现。

您是否考虑过使用长轮询/COMET?它适用于所有浏览器。

于 2012-02-15T12:59:44.613 回答