【问题标题】:Save pusher chat messages into database将推送聊天消息保存到数据库中
【发布时间】:2012-08-30 10:06:53
【问题描述】:

我正在使用推送服务(http://pusher.com)构建一个聊天小部件,我需要将用户发送的所有消息保存到数据库中,以便在一段时间后可以访问它。我正在使用 mysql 数据库,我想到的唯一方法是每次触发聊天消息事件时都进行新插入,但恐怕它不会像应有的那样快。

在这种情况下,您希望使用哪些数据库和技术来保存聊天消息?

【问题讨论】:

    标签: php mysql chat pusher


    【解决方案1】:

    除非您计划创建一个包含数千人的聊天系统,否则我相当确定结构合理的 mysql 解决方案可以解决这个问题。在我工作的地方,我们有一个基于 php 和 mysql 的 Intranet 聊天解决方案,它运行完美(对于我们约 100 人的中型团队)。

    我的一个建议是确保您了解 mysql 索引。确保您的聊天系统真正充分利用索引。这样可以大大提高性能。

    如果并发真的成为你的一个问题,我听说很多人对 node.js 有很好的体验。但是,如果您对 php 和 mysql 感到满意,我会说先走那条路。

    编码愉快!

    【讨论】:

      【解决方案2】:

      您可以采取的一种方法是使用 MySQL 的INSERT DELAYED。当您这样做时,客户端不必等待插入完成。相反,服务器将对插入进行排队并尽可能执行它们。因此处理聊天的进程/线程将不必等待它们。但是您仍然可以将聊天记录存储在可以检索的数据库中。假设您使用推送器在“实时”消息进入时共享它们,因此不需要立即访问聊天历史记录,这可能对您有用。

      【讨论】:

        【解决方案3】:

        (我知道这很旧,但是)这里有一个有趣的演示(尽管是在 Rails 中),它可以满足您的要求。它包括一个可能的模式。 https://github.com/dipth/pusher_demo

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-02-12
          • 2016-04-04
          • 2018-09-30
          • 2017-11-02
          • 1970-01-01
          • 2014-05-22
          • 1970-01-01
          相关资源
          最近更新 更多