我应该如何有效地在 Android 手机上的服务器之间发送 JSON 数据?

Posted

技术标签:

【中文标题】我应该如何有效地在 Android 手机上的服务器之间发送 JSON 数据?【英文标题】:How should I go about sending JSON data between a server an an Android Phone Effeciently? 【发布时间】:2012-07-11 01:22:57 【问题描述】:

我正在为 android 制作一个应用程序,它与服务器通信以通过发送 JSON 字符串来控制它。在他们通过套接字进行通信并且连接保持不变的那一刻,客户端和服务器都保持连接等待消息。

目前我这样做是为了在服务器和客户端上接收数据。

while ((input = in.readLine()) != null) 
    System.out.println(input);

这会对电池寿命造成压力吗?如果在服务器上运行的服务器更像是一个 Web 服务器会更好 - 这样您连接,获取数据然后断开连接。

问题是,我还需要用于聊天之类的流数据。像这样的设置不能很好地工作。

基本上,保持与服务器的 tcp 套接字连接打开会对电池造成巨大压力吗?并且...对于聊天等流数据,当设备进入睡眠状态时 - 最好断开连接并在服务器上保留一个数据缓冲区,以便在客户端重新连接时准备好发送给客户端?

基本上,在不耗尽电池的情况下发送流数据的最佳方式是什么?

编辑:该应用程序是游戏服务器的包装器来控制它。

【问题讨论】:

如果不是一直持续聊天(例如 IRC),那么推送通知呢? @pst 聊天是不变的,我编辑了问题 - 它是来自游戏服务器的聊天。 【参考方案1】:

对于聊天,我推荐使用 XMPP 协议。您需要设置一个服务器,然后在您的应用程序中使用类似 Smack XMPP client library 的东西。

【讨论】:

以上是关于我应该如何有效地在 Android 手机上的服务器之间发送 JSON 数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Android 手机上的 SQLite 数据库与服务器上的 MySQL 数据库同步?

如何正确地在android上计算webrtc

在Android Studio中关闭手机上的应用程序时如何不关闭套接字

手机上的Python怎么运行操作,代码在电脑上运行的出手机却不行

客户端服务器上安装的二进制程序如何方便地在授权服务器上进行授权(有有效期)?

用啥手机软件可以快速获取经纬度?