聊天架构 - php + mysql +不同的客户端

时间:2013-07-23 00:45:08

标签: java php mysql client chat

我正在设计一个聊天应用程序,其中数据将存储在mysql数据库中,并将由php脚本操作。

我希望有可能开发几个不同的客户。将PHP脚本的功能暴露给客户端的最佳选择是什么?

由于

1 个答案:

答案 0 :(得分:2)

(正如我在上面的评论中所说,这根本不是MVC模式。)

通常,您尝试实现的目标可以通过开发Web服务来公开服务器上运行的应用程序的某些功能(以及将数据存储在数据库中)来完成。您需要定义要在客户端和服务之间交换的消息格式。这通常基于JSON或XML语法。

还有几点:

  

-Data-为了存储数据,即消息和用户信息,我选择了mysql,因为这是apache上可用的内容。

Apache(Httpd)上没有MySQL。 Apache和MySQL几乎没有关系,除了有“LAMP”堆栈将它们捆绑在一起。原则上,没有什么能阻止你使用另一个RDBMS(例如PostgreSQL,MS SQL,......)甚至NoSQL数据库。

  

-Controller-访问和操作数据我选择了php,因为这是apache上可用的内容。

同样,PHP是在Apache Httpd上运行的流行选择,但PHP远非唯一的选择(例如,您可以在Python或Perl中实现服务)。

  

-View(客户端) - 可以开发不同的客户端,只要它们可以与有权访问的PHP脚本进行交互。   数据库。目前,我正在使用Java来构建客户端。它有   被用作applet或独立的优点   可下载的应用程序。

2013年,Java applets是一项过去的技术。 (独立Java应用程序或服务器端Java是不同的。)

  

我将有cron作业来选择每个聊天的最后一条消息   客房。这些消息将写入文件。每个聊天室都会   有它的文件。要阅读消息,客户端必须要求   相应的文件并将其内容呈现给用户。发送   消息到聊天室,客户端必须调用php脚本   传递信息,如目的地聊天室,用户ID等   on ..插入将在数据库上很重,但读取会有点   更轻。

这是一个过早优化或不充分优化的明显案例(cron作业每分钟运行一次,对于聊天室来说并不理想)。设计良好的数据库(例如,具有适当的索引)可能没有处理聊天室流量的问题。在尝试深入研究这类细节之前,您可能想要阅读更多有关Web服务和数据库的内容。