【问题标题】:Mismatch between firebase realtime cli donwloaded bytes and firebase console downloaded bytesfirebase实时cli下载字节和firebase控制台下载字节不匹配
【发布时间】:2020-10-23 04:18:34
【问题描述】:

我目前正在使用 android Firebase 实时数据库在 android 中开发一个聊天应用程序,当我决定检查下载的数据时,它在 Android 应用程序信息段中显示了大量下载的数据,但我想也许在这里我看到了一些额外的数据可能用于用户图像或其他任何东西.

所以我直接跳到 Firebase 控制台并得出结论,我在打开应用的一个实例中下载了 400 kb 的数据,而在手机上大约是 600 kb。

所以为了看看出了什么问题,我下载了 Firebase Cli,发现我只下载了最多 200 kb 的数据。

这额外的 200 kb 是从哪里来的,SSL 开销不可能这么多,只是双倍。

正如 Firebase 文档所说:- SSL 加密开销:存在与安全连接所需的 SSL 加密开销相关的成本。平均而言,初始握手的成本约为 3.5KB,每条传出消息的 TLS 记录标头约为 40B。

因此,每当我将新侦听器附加到某个位置时,就认为这是一个新连接,如果不是,那么文档中的新连接意味着什么。

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    profiling the performance of the Realtime Database 上的文档明确表示:

    不要使用分析器工具来估算带宽成本。 Profiler 工具旨在让您全面了解数据库的性能,帮助您监控操作和解决问题,而不是估算帐单。它不考虑网络流量,它只记录响应中发送的应用程序数据的估计值。

    以下是 Firebase 计费的一些常见网络流量示例,这些示例未包含在您的数据库配置文件中:

    • 协议开销:服务器和客户端之间的一些额外流量是建立和维护会话所必需的。根据底层协议,此流量可能包括:Firebase 实时数据库的实时协议开销、WebSocket 开销和 HTTP 标头开销。每次建立连接时,此开销与任何 SSL 加密开销相结合,都会增加连接成本。虽然这通常不会占用大量带宽,但如果您的有效负载很小或者您进行频繁的短连接,它可能会很大。
    • SSL 加密开销:存在与安全连接所需的 SSL 加密开销相关的成本。平均而言,初始握手的成本约为 3.5KB,每条传出消息的 TLS 记录标头成本约为 40B。对于大多数应用程序,这只是您账单的一小部分。但是,如果您的特定情况需要大量 SSL 握手,这可能会占很大比例。例如,不支持 TLS 会话票证的设备可能需要大量 SSL 连接握手。

    阅读有关了解和估算账单的更多信息。

    显然,SSL 和协议开销那么多。

    如果您想更好地了解实际流量,您可能需要使用数据包嗅探器查看实际的有线流量。

    【讨论】:

    • 如果是这样的话,我认为它对于聊天应用程序来说效率不高
    • 有什么办法可以降低管理费用吗?在我的 android 设备中使用数据包嗅探器,我只能从这个应用程序中看到 6 kb 的 SSL 开销数据
    • 不仅仅是 SSL 开销。正如文档所说,还有一些开销。例如,Web 套接字帧包装器、Firebase 在此之上使用的有线协议以及 HTTP 标头。但是,这些都不在您的控制之下。
    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 2012-06-08
    • 2017-01-11
    相关资源
    最近更新 更多