14

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

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

4

2 回答 2

33

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

  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。推送通知将帮助用户即使在不使用应用程序时也能接收消息。

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

关于 UrbanAirship 的一点点

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

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

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

于 2013-01-07T05:46:50.093 回答
0

You can use an existing platform like Scringo. It gives you a one-on-one chat as well as group chat (both the client and the server) as well as the push notification service.

于 2013-04-29T07:23:14.593 回答