使用websockets Android聊天



我使用WebSockets来允许在我的android应用程序中进行实时聊天。当应用程序不活跃,用户收到消息时,GCM工作在后台打开websockets服务并重新启用实时聊天,

我读过关于WebSockets和电池寿命的问题,但是如果我使用GCM只在用户有新消息要响应时才打开WebSockets,这是允许实时聊天的可行解决方案吗?

不,我不这么认为。gcm不是100%可靠的。他们的文档说:

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

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

所以如果客户端没有连接,你可以使用GCM重新连接到webSockets,但是一旦连接完成,那么所有的通信都应该在套接字本身。

相关内容

  • 没有找到相关文章

最新更新