应用程序的客户端-服务器架构

Client-Server architectur for Apps

我为 Android 上 运行 的应用构建了服务器。如果设置可以接受或完全错误,我会听取您的一些意见。因此,该体系结构的工作方式类似于请求-响应。 用户将登录,每个应用程序启动并将获得一个新的会话 ID。 客户端和服务器没有保持连接。每个请求都会切断连接。对于服务器上的每个命令,都需要先检查会话 ID,然后才能计算命令或请求。一切完成后,连接将断开。我在考虑连接将保持到服务器的东西,这让我有可能从服务器直接向客户端发送一些数据。这可能有很多用途。但另一方面,它不是线程 "able"。因为我必须同步套接字访问并在所有 类 和 activity 之间共享 1 个套接字对象,所以我认为这不是一个好方法。但我仍然想知道其他应用程序或在线游戏如何直接向客户端发送数据或消息。这意味着保持连接。我认为他们是在服务或类似的东西中分开做的。这是我面临的一个新问题。我可以使用 firebase 云消息传递,但是当服务器上 运行 超过 100 个线程时,这会非常慢。更好的解决方案是编写第二个服务器程序,该程序 运行 与主服务器分开并保持与客户端的连接。这就是我的解决方案。

我只想知道我的架构是好还是坏主意。

在我看来,打开和关闭连接是一个很好的做法,因为连接是一种比较昂贵的资源。 所以,我会说是的,您可以使用当前已实现的架构。

  • 打开连接
  • 执行操作
  • 关闭连接