繁体   English   中英

Google Cloud Message或XMPP

[英]Google Cloud Message or XMPP

我有一个项目,要求Android客户端与服务器之间进行通信。

通讯流程为:

  • 客户端定期(每10秒钟)将其位置发送到服务器
  • 服务器是桌面应用程序(C#或Java)。 通常,服务器会执行自己的工作,但有时它需要将命令发送给多个特定客户端(需要实时

对于从客户端到服务器的方向,没有问题。 但是相反,从服务器到客户端,我有一些问题。 我正在使用Google云消息传递,但是我意识到命令会有所延迟或丢失。 我还考虑了XMPP技术。 如果我使用XMPP,则服务器和客户端将成为XMPP服务器的用户(如聊天用户)。 除失去互联网连接的情况外,其他都很好。

任何有XMPP服务器或/和GCM经验的人,请给我一些建议。

XMPP / Jabber用于实时通信。 如果要开发类似“ whatsapp”的聊天应用,则应使用XMPP。

GCM是一种云,即使您的应用未运行,它也会在发送之前存储您的消息。云会保存您的消息,并在您的设备连接到互联网后立即发送消息。

您的要求是实时聊天,因此必须使用XMPP。

我同意Brontok的观点,除了:

“ GCM是一种云,即使您的应用未运行,它也会在发送之前存储您的消息。云会保存您的消息并在您运行应用后立即将其发送出去。”

即使您的应用未运行,GCM也会存储您的消息,以在您与网络建立连接(可访问Android Play服务)时将其发送给您,您会收到该消息,并且即使通过通知,您也可以“复活”您的应用,即使该应用“已死”

我已经尝试使用XMPP代替GCM。 由于客户的移动速度通常非常快,因此他们使用3G或4G保持互联网连接。 我在以下情况下进行了测试:

  • 服务器从1开始计数,每30秒将此数字发送给客户端
  • 当客户端收到号码时,它只是响应服务器
  • 服务器收到响应并计算消息的“往返时间”

我测试了3G和4G连接,每次测试中服务器的数量从1到600

结果如下:

3G:

  • 损失:10/600
  • 平均RTT:5.002秒

4G:

  • 损失:4/600
  • 平均RTT:1.112秒

实际上,如果客户端使用3G连接,则延迟是不可接受的。 您有解决此问题的想法吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM