jsk*_*dd3 7 javascript networking websocket react-native
在我们的应用程序中,员工使用手机记录企业内的活动.他们最终平均每月使用0.5GB-2GB数据.
我正在尝试在我们的应用程序中构建功能,记录数据使用情况,以便我们可以以费用索赔的形式将其发送回业务.
在下面的示例代码中,如何确定通过WebSocket?发送消息的设备使用了多少带宽/数据?
var ws = new WebSocket('ws://host.com/path');
ws.onopen = () => {
ws.send('something');
};
Run Code Online (Sandbox Code Playgroud)
假设您可以通过唯一的IP标识客户端会话(只是会话,他们并不总是需要这个IP),我会建议利用水平较低的工具,更适合于您的应用程序,具体的NetFlow采集器.
NetFlow通过在一个时间片上记录IP src,dst和吞吐量来测量TCP'会话'.您可以在Linux内核中或直接在某些网络设备中启用此功能.然后,您将需要一个程序来收集和存储数据.
假设您启用了NetFlow集合并且可以通过IP识别会话,则可以执行以下操作:
我建议这样做而不是某种可能计算接收字节数的用户空间解决方案(你可能很容易做到)是因为有很多数据被库和内核抽象化了.内核处理TCP堆栈(包括重新发送丢失的数据包),库处理TLS握手/加密以及WebSocket握手.所有这些数据都计入用户使用的数据.用户如何使用该应用程序将影响这些开销数据的发送量(不断打开/关闭它与打开它).
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |