3

您好,我将创建一个基于网络的聊天程序。所有聊天都是私人的,没有群组框。

我需要记录所有聊天记录。我的想法是将所有消息推送到 mysql 数据库,然后每半秒检查一次该数据库是否有传入消息。

这是创建 Web 应用程序的最佳方式吗?该站点应支持 2000 个用户同时聊天。

有没有更好的选择?我见过人们谈论多个数据库、文本文件、TCP/IP (IRC) 和 SQL 的组合等。

4

1 回答 1

2

MySQL 能够一次处理大量并发请求,但如何管理和维护数据库是重点。

完美维护和索引的表应该没有问题。保持表的结构尽可能简单。就像是

+----------------+--------------+-----------------
|    from        |     to       |   message      |
+----------------+--------------+-----------------

而且,没有完美的方法来创建聊天程序。取决于许多其他因素,例如

  • 请求类型: AJAX 或 Comet 或 WebSocket
  • 应用程序编码:无垃圾编码,遵循多个设计模式之一的清洁 OO 代码
  • 缓存:尽可能缓存大部分静态信息。
  • 数据归档或事务处理
  • 查询您与消息一起获取的内容(可能是之前可以缓存的内容。这些内容包括namesavatar
于 2012-08-22T21:10:56.717 回答