在问我的问题之前,我想告诉你我在哪个阶段。我已经在我的Android应用程序上实现了TCP / IP套接字,它工作正常(到目前为止......)。客户端(我的Android应用程序)端和服务器端之间的连接是short connection
,这是用户提交信息时,一旦服务器收到消息,将创建一个新线程来发送消息,服务器将响应" RCVD",之后套接字将被关闭,然后连接是关闭。我的应用程序在用户端和服务器端之间有很多交互,因此它在客户端和服务器之间执行了很多connect
和disconnect
,所以我总是担心套接字通信会耗尽手机电池并且性能会受到影响。
最近我在github上找到OkHttp
,很多人建议使用它。我不太熟悉Http,只知道它是更高级别的网络协议。
谁能告诉我哪种方式更好?哪个更有效地交换数据(Object / Json / String)和媒体(Images)?哪个更快,哪个使用更少的电池?
非常感谢。
答案 0 :(得分:0)
基本上,Http和tcp socket之间的比较是没有意义的,但在你的情况下它真的很重要。 如您所述,在您的tcp套接字方式中,您可以在每次从服务器接收新推送时创建新连接,这不是那么高效,如果您使用OkHttp,当您的客户端与同一服务器交换消息时,将重用相同的tcp套接字每一次,而不是一个新的。
顺便说一下,至于推送服务,使用XMPP(over tcp)可能会更好,因为Http没有针对这种短消息交换模型进行优化(你应该在服务器端使用一些额外的策略来保持连接不被已关闭),但您可能必须处理有关XMPP服务器和客户端的一些实现。