我正在开发一款Android应用,我必须在其中实施聊天消息。我希望一对一聊天或群聊。
但我不知道如何开始。请帮帮我这个东西。任何帮助将不胜感激。
答案 0 :(得分:33)
简单的聊天机制将具有2个基本功能
将消息发送到服务器(包含有关收件人的信息)
从服务器接收消息(为我的用户名指定)
第一步很简单,我们可以创建一个Web服务,它将接受包含有关收件人的其他信息的邮件。我们可以使用任何服务器端语言创建它。
步骤2,即从服务器获取消息可以使用2种技术完成,从服务器中提取消息(使用轮询),或者将消息从服务器推送到Android手机
轮询:在此,Android设备将在几秒钟后继续访问服务器,以检查是否有可供用户使用的消息。这也可以使用客户端的简单异步任务来实现,该任务将在2-3秒后继续调用Web服务。如果我们计划仅在用户访问应用程序时启用聊天(没有gmail或facebook等通知),这可以使用,这样我们就可以在不使用时终止查询服务(否则会占用资源)。 / p>
推送通知:更好的选择是使用推送通知。 Android提供Google云消息传递或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
它的工作方式很简单,当有人安装应用程序并连接到互联网时,app会将自己注册到UA服务。为每个已安装的应用程序指定唯一代码(这是您可以捕获用户名和唯一代码并存储在数据库中某个位置的时间)。下一步UA提供了一个API,使用该API可以使用UA提供的唯一代码将消息推送到指定的收件人。这些消息可以由Android应用程序接收并根据要求使用。即使应用未运行,我们也可以像收到电子邮件或消息一样显示通知
答案 1 :(得分:0)
您可以使用Scringo等现有平台。它为您提供一对一聊天以及群聊(包括客户端和服务器)以及推送通知服务。