我怎么知道socketIO是否会提供长轮询的任何好处?

时间:2013-02-02 19:43:14

标签: php performance socket.io scalability long-polling

我最近使用CodeIgniter框架继承了一个PHP应用程序 - 它可以处理身份验证,用户会话,CRUD操作,路由,模板以及应用程序的所有方面。但是,一个功能需要使用长轮询。某些管理员需要近乎实时的更新其他用户正在做的事情。对于几百个用户来说现在一切正常,但是我们正在扩大支持几千个,我担心长轮询会导致一些性能问题。

以下是长期调查过程的基础知识:

  1. 浏览器发出GET请求,启动长轮询流程。

  2. 长轮询过程每1/4秒检查一次txt文件的时间戳。

  3. a)如果更新了txt文件,则长轮询过程会将更改返回给浏览器并更新视图。

    b)如果在25秒内未发现任何变化,则长轮询结束并返回null。

  4. 重复步骤1.

  5. 此过程发生在codeigniter框架之外。我认为用socket.io实现替换这个进程是个好主意。

    socket.io会比长轮询更好吗?如果是这样,在没有实际构建演示并进行负载测试的情况下,我有什么令人信服的证据?在我看来这似乎是一个好主意,但我需要证明时间和精力是合理的。

    另外,如果这没有意义,或者SO标准“不是真正的问题”,那就很抱歉。我对后端可伸缩性很新,而且这些东西对我来说都是全新的。请在downvoting之前提供有用的指导(如果需要)。感谢。

    编辑:这里的偏好是保持原样,因为删除代码并用新东西替换代码是很昂贵的,特别是当新东西未经测试时。所以我想我的问题是,当/如果长轮询解决方案碰到砖墙时,socket.io会成为可行的替代品吗?

1 个答案:

答案 0 :(得分:1)

我认为websockets比长轮询更好,轮询你有不必要的网络吞吐量开销,主要是因为你的应用程序规模。检查这两个链接: