如何在安卓系统中制作一个聊天应用?

28

我想在Android中的Gmail应用程序中添加与在线用户聊天的功能。 如何在我的自己的Android应用程序中添加聊天功能?

我想在Google地图上显示最接近我选择的区域的在线用户,并具有与该在线用户聊天的能力。


1
不是聊天应用,但也许可以帮助的 SDK 是 Scringo(scringo.com)。 - Kalisky
6个回答

17

要在Android应用程序中添加聊天功能,有多种选择。我将按照所需开发专业知识的程度,从最少到最多,呈现这些选项。

使用实时后端服务

有许多公司提供实时后端服务。这些服务将为您提供一个SDK,使您的应用程序可以访问他们的服务器。使用SDK,您将能够在设备之间传输数据。

以下是最受欢迎的服务列表:

Firebase

Google拥有的实时数据库,使用WebSockets和MongoDB作为其核心技术堆栈。该服务允许您在no-SQL数据库中保存数据,然后注册以在该数据更改时接收实时更新。他们还提供推送通知和文件存储服务。还有第三方开源消息框架可用于iOSAndroid

Firebase有一个名为GeoFire的库,允许您使您的应用程序具有位置感知功能。

Pusher / PubNub

我将它们分组在一起,因为它们非常相似。它们提供实时流媒体基础架构和技术。您可以在设备组之间建立通道,并在它们之间流式传输数据。它们不提供任何身份验证用户的手段,因此您需要一个应用服务器。

Quickblox

Quickblox专注于即时通讯市场,并在后端使用XMPP服务器。由于他们使用XMPP,因此此服务内置了许多消息功能,例如隐私列表和输入指示器。他们提供了一个合理但基本的示例消息应用程序。

Layer

Layer介于Quickblox和PubNub/Pusher之间。他们提供了一个面向即时通讯的流媒体平台。他们具有一些像基本阻止之类的消息功能,但这不是像Quickblox那样的完整的消息实现。他们有一个UI组件库,可用于帮助构建完整的应用程序-Atlas。

如果您使用后端作为服务,则始终必须自己构建聊天客户端。如果选择像Firebase等更通用的选项,则还必须构建自己的消息协议。

这些服务将节省您在实时服务器实现,服务器配置和扩展方面的时间。

XMPP

另一种选择是自己托管XMPP服务器。有许多开源XMPP服务器可用:

XMPP服务器将为您提供大量的消息功能。它们通常不包括任何位置感知,但这可以通过在单独的服务器上托管用户数据库来解决-这将允许您添加额外的表以处理地理位置。另一种选择是使用出席状态来在用户位置变化超过一定范围时更新相关设备。

要建立客户端,我建议使用Smack。由于XMPP是一个开放标准,您的客户端应该能够与第三方XMPP服务器和客户端一起工作。

如果您不想自己构建客户端,有许多开源项目(主要是使用copy left许可证),可以作为起点。Xabber是其中之一,但您可以通过搜索找到更多。或者,您可以使用这个商业开源项目。

自己构建服务器

最后一种选择是自己构建消息服务器。这样做的好处是您可以添加所需的功能并使其保持相对简单。一个很好的方法是使用SymfonyWebSocket Bundle进行实时后端处理,并使用Android WebSockets进行客户端处理。使用这种方法,您将拥有实现地理位置功能的灵活性。


6

它是免费的还是付费的Quikblox? - Khan
开发者免费使用 - Rubycon
1
但是对于有限的用户,我是正确的吗?这意味着有限的用户可以在群聊中聊天等。 - Khan

3

2

我不清楚GMaps,但是如果你想实现聊天功能,可以尝试以下链接:Xmpp


这是2021年了,没有人会再使用那种界面了。 - ekashking

0

0
我们提供一个名为ChatCamp的实时聊天SDK解决方案。通过ChatCamp SDK的帮助,您可以快速地向您的Android应用程序添加聊天功能。这是Android快速入门指南的链接 - https://docs.chatcamp.io/docs/android-chat-quickstart。此外,您还可以按距离从特定位置订购用户列表,或者将在线用户显示在Google地图的顶部。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接