聊天 - 接收消息

时间:2014-08-11 14:21:50

标签: android messaging

我有一个关于我想写的简单消息传递应用程序的问题。

假设我们有1000个客户。现在客户端A 会将消息写入客户端B

当然,客户端A将消息发送到分发消息的服务器。但下一步对我来说还不清楚:

  1. 服务器是否将消息发送到客户端B 的特定设备?如果是这样,它如何明确地解决此设备而不是将其发送到其他设备?

  2. 客户B 是否持续检查服务器上发送给客户B 的新消息?

  3. 我不确定想法1是否可行,最好的方法是什么。但我只是想问一下它是如何正常完成的。

1 个答案:

答案 0 :(得分:2)

这些都是创建聊天平台的有效方法。选项2的问题,通常被称为" polling" model(客户端"民意调查"定期发送新消息的服务器)是可扩展性的。仅在您的示例中,如果您有1000个客户端,则每隔一段时间就会向服务器发出1000个请求新消息的请求。为了给出实时消息的外观,这个间隔需要非常短(即最多几分钟)。如果您进行数学运算,您可以看到请求量可以非常迅速地增加。

更好的方法是选项1.使用OpenFireSmack API之类的内容 - 服务器向客户端B发送消息 - 是可能的。您可以阅读有关API here的更多信息。这个想法与推送通知相同。客户端A向服务器发送一条消息,然后该消息将推送"该消息发送给客户B.这是可扩展的,无需轮询(通过持续的HTTP请求杀死服务器资源和电话电池)。