我想在android中的gmail中添加聊天功能与在线用户。如何在我自己的Android应用程序中添加聊天功能?
我想在谷歌地图中显示一个在线用户,该用户离我选择的区域最近,并且能够与该在线用户聊天
答案 0 :(得分:11)
要向Android应用程序添加聊天,有许多选项。我将根据所需的开发专业知识量 - 从最少到最多 - 提供所选择的选项。
使用实时后端服务
有许多公司提供实时后端服务。这些服务将为您提供SDK,允许您的应用访问其服务器。使用SDK,您可以在设备之间传输数据。
以下是最受欢迎的服务列表:
Google拥有的实时数据库使用WebSockets和MongoDB作为其核心技术堆栈。该服务允许您将数据保存在无SQL数据库中,然后注册以在数据更改时接收实时更新。它们还提供推送通知和文件存储服务。还有一个适用于iOS和Android的第三方开源消息传递框架。
Firebase有一个名为GeoFire的库,可让您识别应用位置。
我将这些组合在一起是因为它们非常相似。它们提供实时流媒体基础设施和技术。您可以在设备组之间建立通道,并在它们之间传输数据。他们没有提供任何方法来验证用户,因此您需要一个应用服务器。
Quickblox专门针对即时通讯市场,他们在后端使用XMPP服务器。由于他们使用XMPP,因此该服务具有许多内置的消息功能,如隐私列表和输入指示器。他们提供了一个合理但基本的示例消息应用程
Layer位于Quickblox和PubNub / Pusher之间。他们提供了一个针对即时消息的流媒体平台。它们具有一些消息传递功能,如基本阻止,但这不是像Quickblox这样的全面消息传递实现。他们有一个UI组件库,可用于帮助构建完整的应用程序--Atlas。
如果您使用后端作为服务,您将始终必须自己构建聊天客户端。如果您使用Firebase等更通用的选项之一,则还必须构建自己的消息传递协议。
这些服务可以节省您在实时服务器实施,服务器配置和扩展方面的时间。
<强> XMPP 强>
另一种选择是自己托管XMPP服务器。有许多开源XMPP服务器可用:
XMPP服务器将为您提供开箱即用的大量消息传递功能。它们通常不包含任何位置感知,但这可以通过将服务器配置为在单独的服务器上托管用户数据库来解决 - 这将允许您添加额外的表来处理地理位置。替代方案是当用户的位置改变一定量时使用在线更新相关设备。
要构建客户端,我建议使用Smack。由于XMPP是开放标准,因此您的客户端应该能够使用第三方XMPP服务器和客户端。
如果您不想自己构建客户端,那么有许多开源项目(主要是复制左侧许可证)可以作为起点。 Xabber就是一个例子,但你可以通过搜索找到更多。或者,您可以使用this商业开源项目。
自己构建服务器
最后一个选择是自己构建消息传递服务器。这样做的好处是,您可以添加所需的功能并使其保持相当简单。一个好的方法是使用Symfony和WebSocket Bundle作为实时后端,Android WebSockets作为客户端。使用这种方法,您可以灵活地实现地理位置功能。
答案 1 :(得分:4)
我&amp;我的团队,我们正在开发名为QuickBlox的Backend作为服务平台。 我们有一个很好的例子,说明如何将Map / Chat功能集成到您的应用程序中:
简单的Android地图/聊天应用程序:https://quickblox.com/developers/Android_XMPP_Chat_Sample
答案 2 :(得分:3)
我们一直与开发者社区密切合作,开发了Applozic Chat SDK,只需10分钟即可完成集成。试一试:Applozic Github提供了带有开源sdk的示例代码:https://github.com/AppLozic/Applozic-Android-SDK
答案 3 :(得分:2)
我不知道关于GMaps但是为了实现聊天,您可以尝试以下链接 Xmpp
答案 4 :(得分:0)
添加聊天功能,您可以使用Firebase或XMPP。
如果选择正确的选项,您可能更喜欢这个 https://www.quora.com/Which-protocol-is-better-to-develop-a-chat-web-app-using-Firebase-XMPP-or-HTTP
OR
如果您对后端技术有深入了解,请继续使用自己的技术。同时,市场上还有一种即时解决方案,可以帮助您更轻松地集成其他功能。
答案 5 :(得分:0)
我们提供名为ChatCamp的实时聊天SDK解决方案。您可以在ChatCamp SDK的帮助下快速为Android应用添加聊天功能。以下是Android快速入门指南的链接 - https://docs.chatcamp.io/docs/android-chat-quickstart。此外,可以根据与特定位置的距离来订购用户列表,也可以在Google地图上显示在线用户。