gpt4 book ai didi

javascript - 测量 React Native 应用程序中网络套接字使用的带宽

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:36 25 4
gpt4 key购买 nike

在我们的应用程序中,员工使用手机记录企业内的事件。他们最终平均每月使用 0.5GB-2GB 数据。

我正在尝试在我们的应用程序中构建记录数据使用情况的功能,以便我们可以以费用报销的形式将其发送回企业。

在下面的示例代码中,如何确定通过 WebSocket 发送消息的设备使用了多少带宽/数据?

var ws = new WebSocket('ws://host.com/path');

ws.onopen = () => {
ws.send('something');
};

最佳答案

假设您可以通过唯一 IP 识别客户端 session (只是 session ,他们并不总是需要这个 IP),我会建议利用更适合您的应用程序的较低级别的工具,特别是 NetFlow 收集器。

NetFlow 通过在一个时间片内记录 IP src、dst 和吞吐量来测量 TCP“对话”。您可以在 Linux 内核中或直接在某些网络设备中启用它。然后,您将需要一个程序来收集和存储数据。

假设您启用了 NetFlow 收集并且可以通过 IP 识别 session ,您可以执行以下操作:

  1. 在 session 开始时记录时间、用户 ID 和他们的 IP 地址
  2. 使用此数据,您可以查询 NetFlow 日志并获取吞吐量

我之所以建议使用这种方法而不是某种可能计算接收到的字节数的用户空间解决方案(您可以很容易地做到这一点),是因为库和内核提取了大量数据。内核处理 TCP 堆栈(包括重新发送丢失的数据包),库处理 TLS 握手/加密以及 WebSocket 握手。所有这些数据都计入用户的已用数据。用户如何使用该应用程序将影响发送多少开销数据(不断打开/关闭它与保持打开状态)。

关于javascript - 测量 React Native 应用程序中网络套接字使用的带宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53435793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com