【问题标题】:Android - Different protocols for network communicationAndroid - 网络通信的不同协议
【发布时间】:2016-08-04 19:08:13
【问题描述】:

有很多关于如何在 android 中通过 Apache HTTP 客户端或 HttpsUrlConnection 实现 http 或 https 连接的文档,但我想知道是否还有其他协议/通信范例可以考虑以便与服务器。 事实上,根据我的经验和阅读资料,HttpsUrlConnection 非常容易设置并提供良好的安全性。但我也希望考虑其他因素,例如性能和可靠性。

还有其他适用于我的 Android 协议吗?

【问题讨论】:

    标签: android security https communication


    【解决方案1】:

    【讨论】:

    • 性能提升有那么大吗?因为据我了解,UDP 的安全性和可靠性较低
    • 这是不可靠的。但是非常快。非常适合游戏,因为它可以减少延迟。但是你必须准备好以这样的方式编码,你可能会错过一个偶然的数据包。
    • 我不认为 UDP 是这里的最佳选择——他特别提到了performance and reliability。更好的是使用经验丰富的 HTTP 库。比如 OkHttp。
    • 是的。但我觉得 OP 正在下定决心。当他需要更快的速度时,首先想到的是 UDP。 stackoverflow.com/questions/1099672/… 包含一个很好的讨论。我会建议 OP 阅读该内容,然后决定 UDP 是否合适。
    【解决方案2】:

    Apache HTTP Client 或 HttpsUrlConnection 都是可靠的。性能方面 HttpURLConnection 比 HttpClient 快得多。

    访问http://openjavafaq.blogspot.in/2009/03/httpclient-vs-httpurlconnection.html

    基于以下测试参数- 测试参数: 15 个线程 10 个循环计数 Connection 完成 150 个请求的平均时间:7.61 毫秒 HttpClient完成150个请求的平均时间:85.89毫秒 尽管 HttpURLConnection 的性能要快得多,但它并不能很好地控制 Http 连接的管理,但在生产环境中使用 HttpClient 总是可行的,当需要大量事务时。

    比较参考:http://www.innovation.ch/java/HTTPClient/urlcon_vs_httpclient.html

    【讨论】:

      【解决方案3】:

      您提到了两件事 http 客户端和通信协议。

      设计一个你必须考虑的系统

      1) 通信协议

      然后

      2) 客户端/服务器软件

      使用 http 协议,你有客户端(okhttp 就是其中之一)和支持各种版本/变体的服务器,因为使用最广泛的 http 1.1 是“新的”http 2.0、spdy、http 流等。如果你计划做消息/事件驱动的应用程序,你可能想尝试 mqtt 或 WebSockets。 这些都可以在它的顶部(实际上是在下面)附带某种安全协议,这可能会导致一些性能下降。这些都可以在 TCP 之上运行。

      有人错误地将 UDP 与 HTTP 进行了比较,而将TCP_vs_UDP 进行比较更合适。我们已经提到了 UDP 的一些缺点,但是 QUIC 可以解决这些问题。

      所以有很多选择,取决于你想做什么以及你能做什么。

      回到您选择的方式似乎决定 1) 可能很困难。 因此,您可以做的是尽可能好地决定您要使用的协议,但还要选择一个“智能”客户端,以防您改变主意,例如okhttpnetty。您还可以选择模块化解决方案之类的东西,它可以即插即用不同的实现,而您的调用代码保持不变(netty 在某种程度上也可以这样做),例如volleyjus(基于 volley idea )。在这种情况下,你保持灵活。

      更新:在这个question中也有关于各种协议的好信息

      【讨论】:

        猜你喜欢
        • 2012-10-24
        • 2021-06-21
        • 2013-12-14
        • 2012-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-27
        • 1970-01-01
        相关资源
        最近更新 更多