【问题标题】:Ideas on IM/chat system for social network website社交网站IM/聊天系统的构想
【发布时间】:2012-07-25 16:55:00
【问题描述】:

我正在创建一个社交网络网站,我需要一个 IM/聊天解决方案。

对话只是一对一的,用户只能与他们的朋友聊天(即 Facebook 聊天 - 没有频道,没有房间......)。

网站是用 CodeIgniter(PHP) 和 MySQL 数据库制作的。可能会放在VPS(Linux)上,所以我可能对环境有控制权。此外,预计用户将超过 10 万。

所以,我需要一些关于如何进行聊天的想法。

到目前为止我的想法:

  • 每隔 X 秒进行一次 Ajax 轮询(对于这种规模的网站来说不是很好的解决方案)
  • 实现 Jabber/XMPP 系统(我没有这方面的信息,也不可能)
  • 使用第 3 方服务(如 Pusher.com
  • Node.jssocket.io 中创建聊天,并使其独立于网站的其他部分

经过一些研究并在此处阅读了一些关于 SO 的答案

https://stackoverflow.com/a/11362929/928540

https://stackoverflow.com/a/5654487/928540

我真的很喜欢Node.jssocket.io 的想法,所以我想听听一些关于它的意见,也许还有一些指导、链接、帮助、教程......

【问题讨论】:

    标签: php codeigniter node.js chat socket.io


    【解决方案1】:

    此外,预计会有超过 100 000 个用户

    我认为问题还在于有多少活跃用户/连接。

    每隔 X 秒进行一次 Ajax 轮询(对于这种规模的网站来说不是很好的解决方案)。

    确实如此。这是个坏主意。

    实现 Jabber/XMPP 系统(我没有这方面的信息,也不可能)

    EjabberdBOSH 之类的东西很受欢迎。我玩了韵律,因为它很容易安装,strophe.js 作为 BOSH 客户端(浏览器中的 javascript)。

    使用第 3 方服务(如 Pusher.com)

    最容易实现(没有扩展问题),但可能会变得昂贵。 5000 个同时连接将花费您每月 199 美元(太贵),我认为您可能需要?然后你有大约 5000 个活动连接,所以它是有利可图的(?)。

    在 Node.js 和 socket.io 中创建聊天,并使其独立 从网站的其他部分

    非常流行的解决方案,但现在我相信一些用户正在经历内存泄漏(但这可能已经解决了)。这可能只是websockets transport 的问题。此外,它可能不是真正的泄漏,而只是high memory usage because of lazy GC。我建议在完全提交之前先进行分析。

    【讨论】:

      【解决方案2】:

      Meteor 可能是您可以使用的解决方案。它旨在创建“实时”应用程序,我敢打赌,构建一对一的消息传递系统是轻而易举的事。

      我知道它不是 PHP,但你提到使用 Node.js,我想如果你可以使用 Node.js,那么你可以使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多