聊天系统实施

时间:2013-05-26 22:57:38

标签: javascript ajax nginx chat comet

我需要实现一个实时聊天系统,有点类似于Facebook,因为它必须:

  • 允许2个用户之间的通信
  • 将邮件存储在收件箱/已发送的框中
  • 将邮件存储在收件箱中,如果用户在发送邮件时处于离线状态,则标记为未读
  • 语言/垃圾邮件过滤器也必须处于活动状态,因为需要监控涉及未成年人的通信。
  • 理想情况下,这适用于大多数设备/浏览器,包括移动访问。

在使用什么操作系统/软件方面,我对这个项目几乎有一个空白的画布。

做了一些研究之后,似乎有几个选择/事情需要考虑?

  • PHP / AJAX长轮询(Comet风格),带有标准LAMP堆栈,用于在mysql DB中存储消息
  • 使用HTTP推送模块的LEMP堆栈(nginx),再次使用带有php后端的Comet风格服务器将消息存储在mysql数据库中
  • Node.js的?
  • HTML5界面以维护浏览器/设备支持?
  • 最佳数据库系统?有人建议使用mongoDB吗?
  • 有些人还建议使用MemCacheQ来提升性能。

你有什么想法?有什么建议吗?

2 个答案:

答案 0 :(得分:2)

将SignalR视为在客户端之间传递消息的方式,这是创建聊天应用程序的最简单方法。

答案 1 :(得分:2)

这听起来像MEAN堆栈(MongoDB,Express.js,Angular.js,Node.js)与socket.io或lightstreamer结合使用的东西。据说Lightstreamer比socket.io更快,更具可扩展性(他们的现场演示不会让我怀疑),它的文档中还有一个页面讨论PhoneGap(它们处理不支持WebSockets的手机......这是很有用,因为据我所知,大多数手机都不支持WebSockets)

这不是我的专业领域,但值得研究。