【问题标题】:A Little Explanation About Chat Application关于聊天应用的一点说明
【发布时间】:2012-12-07 02:41:26
【问题描述】:

我计划创建一个可供数千名用户使用的聊天应用程序。最初我在网上做了很多教程,并阅读了很多关于 PHP 和 MySQL 聊天应用程序的内容。在此搜索过程中,我遇到很多人说 PHP 中的聊天应用程序对成千上万的用户都有好处。他们中的大多数人建议使用 NodeJS。我在这里遇到的问题是这些帖子都没有说明为什么 NodeJS 很好。

从我阅读的所有 PHP 聊天教程中,似乎在两个用户之间的聊天会话期间,他们正在交换的消息被发送并返回到数据库。我的问题是:

  1. 在 NodeJS 中,消息是否没有往来发送到数据库?
  2. NodeJS 是否将聊天消息保存在内存中或类似的地方?
  3. 它与 PHP 和 MySQL 有何不同?
  4. 还是说 NodeJS 根本不使用数据库?

有人可以帮助我了解聊天应用程序在 NodeJS 中是如何工作的吗?

我不是要代码 sn-ps。我想用文字来解释。我知道有很多关于 NodeJS 的教程,但我特别询问有关聊天应用程序的问题。您的解释将帮助我更好地理解某些事情。

【问题讨论】:

  • Node.js 是 PHP+Apache 的更轻巧的替代品(这可能就是为什么推荐它用于可能产生大量流量的应用程序的原因)。是否使用数据库取决于两种情况(php 或 node)。
  • 这可能很有趣webappers.com/2012/06/12/…
  • @Baba、Brian 等。这篇文章有什么问题?结束这个问题的任何人都可以指出问题的哪一部分引发了争论。我问了一个简单的问题,有人向我解释了为什么 NodeJS 适合聊天应用程序,而你结束了这个问题。我能控制别人说的话吗?如果您认为某人的评论引起争论,为什么不删除该评论。关闭这篇文章对你来说是非常愚蠢的。我问的问题有什么问题?删除与帖子无关的cmets,让帖子站立而不是关闭

标签: php mysql node.js


【解决方案1】:

PHP 和 Node.js 的主要区别在于 Node.js 支持多线程和事件。

在 PHP 中,您必须定期 ping 服务器以获取新消息,每个用户都需要这样做。

在 Node.js 中,您可以实现更智能的解决方案。客户端 ping 服务器一次,只有在收到新消息时才得到响应。之后,您再次 ping。

这极大地减少了服务器负载,并允许您同时处理更多用户。

【讨论】:

  • @JonathanLonowski 这不是多线程。那是多进程。
  • @DaveRandom 好的。也许不是集群,但libuv 是多线程的。它仅适用于在C/C++ 中实现的异步 API,但它不是绝对的“no”。
  • 您也可以在php中实现日志轮询。它不是 node.js 独有的。 Socket.io 让它变得非常简单。
  • 是的,作为程序员的一部分就是为工作选择合适的工具。 Jon Skeet 可以在汇编中实现这样的功能,只在 MS Paint 中编写代码,并不意味着我们都应该尝试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-18
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多