我想开发一个 SaaS 聊天,用户可以将其嵌入到他们的网站上,并且还会有一个桌面聊天客户端。类似于Live Chat的东西。问题是我从未开发过服务器或数据库程序。此外,我是 Java 新手,但在桌面 C# 编程方面有一些经验(开发了一些 gui 应用程序)。事实上,我是一名学生,没有那么多经验。
我正在尝试为我们的服务器设计一个良好的可扩展架构,但经过几天的谷歌搜索和阅读维基百科后,我对如此大量的信息感到不知所措。服务器需要简单,因为它不包含任何演示代码,但它必须非常快,因为如果服务变得流行,我预计会有高流量。目前我已经选择了我将要使用的大部分技术。这是我的服务器架构版本:
现在最大的问题是如何设计这个包含业务逻辑的“码头”大片。我已经知道我需要使用 MVP 模式。但仍然存在一些主要问题:
- 如何正确使用数据库?制作可以将对象加载和保存到数据库的静态
DatabaseManager
类?或者在类上制作特殊的静态SaveToDb
和LoadFromDb
方法?我认为必须有一个已经开发的框架来处理这些事情(这对于服务器来说一定是非常常见的任务) - 如何设计事件系统?如何正确通知“聊天室”中的所有客户他们有新消息?
NewMessage
由于大多数客户都在数据库中,而不是在内存中,因此我无法轻松地将所有客户订阅到聊天室的事件。 - 如果您发布一些主要类的简化设计,这将有很大帮助
Message
:User
和Chat room
. 消息从用户发送到聊天室,聊天室是订阅用户的集合。这将是对前两个问题的回答。
如果您向我指出适当的技术或设计模式,那将是非常好的。