我正在编写一个包含聊天系统的应用程序。我正处于一个需要为我的用户聊天的阶段。我有一个服务器端应用程序存储消息很好,但我不知道从Android设备与它通信的最佳方式是什么?
我的应用程序如何知道新数据已经到达,最长延迟时间为一秒?我是否需要每秒询问服务器,或者是否有其他方式通知应用程序已发送新消息,然后调用服务器获取数据。
您是否有建议如何构建消息?我的意思是可能会有很多聊天同时进行。
您认为解决此问题的最佳方法是什么?
谢谢
答案 0 :(得分:6)
我在android中搜索了不同的聊天方式,我找到了以下方法:
推送通知:我正在使用GCM推送通知,但问题是,有些设备很晚才收到通知。 套接字编程:然后我去使用套接字编程,我下载了一些套接字编程的示例程序但是在使用这个时我发现在这种情况下,Web服务在一个线程中一次又一次地被调用。 所以我最后决定了。 使用网络服务(后台线程中的呼叫服务器)。只是一次又一次地调用Web服务来检查新数据。
我正在使用在后台运行的IntentService,根据我这是最好的方法。
答案 1 :(得分:1)
您的问题非常广泛,但您应该使用json格式进行数据传输(当然使用解析器)和一个http库(如Volley),以获得良好的网络性能。
关于从服务器获取有关要下载的新数据的通知的问题,请考虑使用Google Cloud Messaging提供的push notifications。只是一个忠告 - 在使用GCM时总是有一个正常的,循环的数据检查方式,因为它往往会失败。