android - 在android中实现一对一和群聊

标签 android chat

<分区>

我正在开发一个 Android 应用程序,我必须在其中实现聊天消息。我想要一对一聊天群聊

但我不知道如何开始。请帮我解决这些问题。任何帮助将不胜感激。

最佳答案

一个简单的聊天机制将有两个基本功能

  1. 将消息发送到服务器(包含有关收件人的信息)

  2. 从服务器(指定为我的用户名)接收消息

第一步很简单,我们可以创建一个 Web 服务,该服务将接受带有有关收件人的附加信息的消息。我们可以使用任何服务器端语言来创建它。

第 2 步,即从服务器获取消息可以使用 2 种技术完成,从服务器拉取消息(使用轮询),或将消息从服​​务器推送到 android 手机

  1. 轮询:在这种情况下,android 设备将在几秒钟后继续访问服务器,以检查是否有可供用户使用的消息。这也可以在客户端使用一个简单的异步任务来实现,该任务将在 2-3 秒后继续调用 Web 服务。如果我们计划仅在用户访问应用程序时启用聊天(没有像 gmail 或 facebook 这样的通知),那么使用它很好,这样我们就可以在不使用时终止轮询服务(否则它会占用资源)。

  2. 推送通知:更好的选择是使用推送通知。 Android 提供谷歌云消息或 GCM(http://developer.android.com/google/gcm/index.html),这将有助于轻松实现从服务器推送。否则,您可以根据需要尝试第三方 API,如 urbanairship 或 pushwoosh。推送通知将帮助用户即使在不使用应用程序时也能接收消息。

所以简而言之,接收消息的网络服务和推送通知机制应该足以在 android 中实现聊天服务。

关于 UrbanAirship 的一点点

我在我的一个项目中使用 UA 进行推送通知,因为我需要同时支持 iOS 和 Android。如果你只是想支持 Android GCM 可能也是一个不错的选择。

回到 UA,检查示例代码和用法:https://docs.urbanairship.com/display/DOCS/Home

它的工作方式很简单,当有人安装应用程序并连接到互联网时,应用程序会将自己注册到 UA 服务。为每个已安装的应用程序指定一个唯一代码(此时您可以捕获用户名和唯一代码并将其存储在数据库中的某个位置)。 Next UA 提供了一个 API,您可以使用该 API 将消息推送给指定的收件人,使用 UA 提供的唯一代码。这些消息可以由 android 应用程序接收并根据要求使用。即使应用程序未运行,我们也可以像收到电子邮件或消息时一样显示通知

关于android - 在android中实现一对一和群聊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14190410/

相关文章:

android - 从 android 调用外部 URL 并获得响应

android - 在布局中插入首选项 XML

flutter - 任何用于 flutter 的 XMPP 插件?

MYSQL 有哪里不工作

Android Studio map API v2

java - 在项目中存储大文本的最佳方法

python - 使用 Twisted 创建和部署 Python 聊天应用程序

安卓xmpp客户端xabber

asp.net - 在 Web Api 聊天应用程序后端服务器中使用或不使用数据传输对象 (DTO)

java - Java 中使用 obj.getXY() 和 Object o = obj.getXY() 的性能