0

我正在实现一个基于 android 的聊天。我想让它几乎尽可能低。原因很简单——我想获得更多关于事物如何运作的知识。我正在使用套接字连接到服务器。使用单个套接字,一切都运行良好,但我的问题是:当使用该应用程序的用户打开多个聊天窗口时,我是否需要多个连接。如果是这样 - 建立这些联系的最佳方法是什么。我正在考虑使用像 Util 类这样的东西,它可以在需要时打开连接,但我仍然不太确定这个类必须具有什么架构。例如,将其设为单例类是否有意义?我是否能够跟踪所有打开的连接并在不再需要它们时关闭它们。任何帮助,将不胜感激。

PS如果我错过了什么,请随时告诉我什么,我将尝试编辑问题以使其尽可能清晰。

4

1 回答 1

0

这显然更像是一个架构问题,但我会提供一些想法。我会说这取决于您的设置。

听起来您是直接连接到“联系人”,而不是使用中央服务器。我假设您正在确定并直接使用 IP 地址来启动聊天会话。如果是这种情况,那么是的,您需要为正在进行的每个聊天会话打开一个连接。

相反,如果您使用的是聊天服务器,那么理论上,您只需要一个与该服务器的连接。当然,该服务器需要与每个用户建立连接。使用聊天服务器需要您做更多的工作,但它可以提供更友好的用户体验。例如,在服务器上注册您的用户名将允许您通过他们的用户名与其他人交谈,而不必知道他们的 IP。但是,您仍然需要通过众所周知的 IP 地址或 DNS 名称连接到您的服务器。

至于类架构,我强烈建议您查看名为“依赖注入”的内容。实际上,依赖注入通常意味着您通过接口与服务和提供者进行交互。实现接口的实际类也由您编写,并在运行时“注入”。这使您可以将应用程序与特定技术或协议分离,这意味着有一天,您可以将自定义套接字实现替换为 Web 服务实现,而无需更改使用该服务的代码。此外,大多数依赖注入框架允许您指定在注入类时如何实例化和使用它们。您可以使用配置来指定一个且只有一个类将被实例化(实际上是一个单例),

于 2013-11-14T21:56:42.780 回答