我想开发一个与服务器交换数据的 Android 应用程序。到目前为止,我不确定软件设计:
我不想将服务器进程实现为 Web 服务,因为服务器应该能够将数据推送到连接的 (Android) 客户端。
稍后,我想为 iPhone 或 Windows Phone 等其他客户端做好准备。因此,我认为选择 JSON 格式进行服务器和客户端之间的数据交换是一个好主意。
通过原始套接字发送 JSON 对象是个好主意吗?有没有符合我要求的库,尤其是从服务器到客户端的对象推送?
您似乎在这里问了两个不同的问题。
第一个问题是如何将数据推送到客户端设备。Android 上的推送通知本身就是一个完整的主题,在大量 SO 问题中进行了讨论。例如,您可以查看Google 可以消息传递或 MQTT。
第二个问题涉及应用程序数据的表示格式,这与您将如何执行推送通知完全不同。是的,JSON 是通过原始套接字交换数据的一种很好的格式,只要它适合您的应用程序,但请记住,您仍然需要某种封装 JSON 数据的原始套接字上的消息框架协议。一般来说,如果可能的话,我强烈建议不要尝试在原始 TCP 套接字上做事,而是使用位于 TCP 之上的现有协议库,因为编写自己的消息协议可能比最初意识到的要多。
例如,您可以选择 MQTT 来执行推送通知。您将获取现有的 MQTT 库,并且可以以 JSON 格式推送消息,而无需担心低级 TCP 套接字操作。
你可以看看杰克逊