使用websockets进行Android聊天

时间:2015-07-12 00:38:06

标签: android websocket chat real-time

我正在使用WebSockets允许在我的Android应用程序中进行实时聊天。当应用程序未处于活动状态且用户收到消息时,GCM会在后台打开websockets服务并重新启用实时聊天。

我已经阅读了有关WebSockets和电池续航时间的问题,但是如果我仅在用户有新消息要响应时才使用GCM打开WebSockets,这是否可以实现实时聊天?

1 个答案:

答案 0 :(得分:2)

不,我不这么认为.GCM不是100%可靠。 他们的文件说:

GCM通常在发送消息后立即发送消息。但是,这可能并非总是可行。例如,如果平台是Android,则可以关闭,离线或以其他方式不可用设备。或者,发送方本身可能会要求在设备变为活动状态之前使用delay_while_idle标志传递消息。最后,GCM可能会故意延迟消息,以防止应用程序消耗过多的资源并对电池寿命产生负面影响。

当发生这种情况时,GCM会将消息存储起来并在可行的情况下尽快发送。虽然在大多数情况下这很好,但有一些应用程序可能永远不会传递延迟消息。例如,如果消息是来电或视频聊天通知,则仅在呼叫终止之前的一小段时间内有意义。或者,如果消息是对事件的邀请,则在事件结束后收到该消息将无效。

因此,如果客户端未连接,您可以使用GCM重新连接到webSockets,但是一旦建立连接,则所有通信都应该在套接字本身上。