Http 或 TCP/IP 套接字,哪个更适合 Android 应用程序?

Http or TCP/IP socket, which is better for Android app?

在问我的问题之前,我想让你知道我现在处于什么阶段。我已经在我的 android 应用程序上实现了 TCP/IP 套接字,它工作正常(到目前为止......)。客户端(我的 android 应用程序)端和服务器端之间的连接是 short connection 也就是当用户提交信息时,会创建一个新的线程将消息发送出去,在服务器端,一旦服务器收到消息,服务器会响应"RCVD",之后socket会被关闭,然后连接被关闭。我的应用程序在用户端和服务器端之间有很多交互,因此它在客户端和服务器之间做了很多 connectdisconnect,所以我总是担心套接字通信会耗尽 phone 电池并且性能会受到影响。

最近我在github上找到了OkHttp,很多人建议使用它。我对Http不是很熟悉,只知道它是一种更高层次的网络协议。

谁能告诉我哪种方式更好?交换数据(Object/Json/String)和媒体(图像)哪个更有效?哪个更快,哪个耗电量更少?

非常感谢。

基本上,Http 和 tcp 套接字之间的比较没有意义,但在您的情况下它确实很重要。 正如您所描述的,在您的 tcp 套接字方式中,您可能会在每次从服务器接收新推送时创建新连接,这效率不高,如果您使用 OkHttp,当您的客户端与同一服务器交换消息时,将重复使用相同的 tcp 套接字每次而不是制作一个新的。

顺便说一下,至于推送服务,使用 XMPP(over tcp) 可能更好,因为 Http 没有针对这种短消息交换模型进行优化(您应该在服务器端使用一些额外的策略来保持连接从被关闭),但你可能必须处理一些关于 XMPP 服务器和客户端的实现。