我正在开发一个聊天应用程序,很想使用SQL数据库。

我的问题是,经过几次Google搜索后,有人从一个站点告诉我,使用DB会比使用普通文件(例如Text或JSON文件)慢得多,但是在其他一些站点上,人们却说完全相反。我不了解你们,但是在为用户创建Web应用程序时,用户永远是第一位的。

因此,我很乐意使用SQL DB:1.)我有很好的经验,并且2.)它使我可以使应用程序更酷(更多功能)。但是,如果这样做会使用户端的运行速度变慢(明显的滞后),则表示不可以。

无论哪种方式,我都将使用AJAX和PHP连续“轮询”服务器以检查文件/数据库(是否有新消息,联系请求等)。

另外,如果您想知道该应用程序不会像一对一聊天,它将具有“房间”,多个用户可以在其中加入并与所有加入的用户进行交谈。用户还可以请求“私人聊天” ”与另一位用户建立一对一连接。

那么,就性能而言,MySQL数据库还是无聊的TEXT / JSON / OTHER文件?

哦,还有一件事,我不想使用任何第三方库或API。讨厌依靠别人的工作(被贬低很多次)。

最佳答案

如果您想实现IRC克隆,我认为您选择了所有错误的工具。

最好的方法是编写一个处理内存中所有内容的自定义HTTP服务器。没有数据库,没有文件的持续轮询。当消息到达时,您只需在正确的内存列表中循环,然后将消息分发给其他用户。对于浏览器到服务器的连接,我建议使用“ Comet”(如果支持的话,请使用用于支持它们的浏览器的Web套接字)。

PHP可能不是这种选择的语言,因为几乎所有用PHP完成的工作都是基于传统的简短隔离请求。对于长时间运行的实时服务于多个客户端的过程,我建议使用Python或Node.js之类的方法。

10-05 23:10
查看更多