Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
1783200b
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
1783200b
编写于
7月 18, 2023
作者:
O
openharmony_ci
提交者:
Gitee
7月 18, 2023
浏览文件
操作
浏览文件
下载
差异文件
!20626 增加流量管理md
Merge pull request !20626 from 徐杰/stats_0707_md
上级
85b7a86c
7c4316d2
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
156 addition
and
0 deletion
+156
-0
zh-cn/application-dev/connectivity/Readme-CN.md
zh-cn/application-dev/connectivity/Readme-CN.md
+1
-0
zh-cn/application-dev/connectivity/net-statistics.md
zh-cn/application-dev/connectivity/net-statistics.md
+155
-0
未找到文件。
zh-cn/application-dev/connectivity/Readme-CN.md
浏览文件 @
1783200b
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
-
[
以太网连接
](
net-ethernet.md
)
-
[
以太网连接
](
net-ethernet.md
)
-
[
网络连接管理
](
net-connection-manager.md
)
-
[
网络连接管理
](
net-connection-manager.md
)
-
[
MDNS管理
](
net-mdns.md
)
-
[
MDNS管理
](
net-mdns.md
)
-
[
流量管理
](
net-statistics.md
)
-
IPC与RPC通信
-
IPC与RPC通信
-
[
IPC与RPC通信概述
](
ipc-rpc-overview.md
)
-
[
IPC与RPC通信概述
](
ipc-rpc-overview.md
)
-
[
IPC与RPC通信开发指导
](
ipc-rpc-development-guideline.md
)
-
[
IPC与RPC通信开发指导
](
ipc-rpc-development-guideline.md
)
...
...
zh-cn/application-dev/connectivity/net-statistics.md
0 → 100644
浏览文件 @
1783200b
# 流量管理
## 简介
流量管理提供了基于物理网络的数据流量统计能力,支持基于网卡/UID的流量统计。
流量管理主要实现功能有:
-
支持基于网卡/UID的实时流量统计。
-
支持基于网卡/UID的历史流量统计。
-
支持基于网卡/UID的流量变化订阅。
> **说明:**
> 为了保证应用的运行效率,大部分API调用都是异步的,对于异步调用的API均提供了callback和Promise两种方式,以下示例均采用callback函数,更多方式可以查阅[API参考](../reference/apis/js-apis-net-statistics.md)。
以下分别介绍具体开发方式。
## 接口说明
完整的JS API说明以及实例代码请参考:
[
statistics链接
](
../reference/apis/js-apis-net-statistics.md
)
。
| 类型 | 接口 | 功能说明 |
| ---- | ---- | ---- |
| ohos.net.statistics | getIfaceRxBytes(nic: string, callback: AsyncCallback
\<
number>): void; |获取指定网卡实时下行流量数据。 |
| ohos.net.statistics | getIfaceTxBytes(nic: string, callback: AsyncCallback
\<
number>): void; |获取指定网卡实时上行流量数据。 |
| ohos.net.statistics | getCellularRxBytes(callback: AsyncCallback
\<
number>): void; |获取蜂窝实时下行流量数据。 |
| ohos.net.statistics | getCellularTxBytes(callback: AsyncCallback
\<
number>): void; |获取蜂窝实时上行流量数据。 |
| ohos.net.statistics | getAllRxBytes(callback: AsyncCallback
\<
number>): void; |获取所有网卡实时下行流量数据。 |
| ohos.net.statistics | getAllTxBytes(callback: AsyncCallback
\<
number>): void; |获取所有网卡实时上行流量数据。 |
| ohos.net.statistics | getUidRxBytes(uid: number, callback: AsyncCallback
\<
number>): void; |获取指定应用实时下行流量数据。 |
| ohos.net.statistics | getUidTxBytes(uid: number, callback: AsyncCallback
\<
number>): void; |获取指定应用实时上行流量数据。 |
| ohos.net.statistics | getTrafficStatsByIface(ifaceInfo: IfaceInfo, callback: AsyncCallback
\<
NetStatsInfo>): void; |获取指定网卡历史流量信息。 |
| ohos.net.statistics | getTrafficStatsByUid(uidInfo: UidInfo, callback: AsyncCallback
\<
NetStatsInfo>): void; |获取指定应用历史流量信息。 |
| ohos.net.statistics | on(type: 'netStatsChange', callback: Callback
\<
{ iface: string, uid?: number }>): void |订阅流量改变事件通知。 |
| ohos.net.statistics | off(type: 'netStatsChange', callback?: Callback
\<
{ iface: string, uid?: number }>): void; |取消订阅流量改变事件通知。 |
## 获取网卡/UID的实时流量统计数据
1.
获取指定网卡实时实时流量数据。
2.
获取蜂窝实时实时流量数据。
3.
获取所有网卡实时实时流量数据。
4.
获取指定应用实时实时流量数据。
```
js
// 从@ohos.net.statistics中导入statistics命名空间
import
statistics
from
'
@ohos.net.statistics
'
//获取指定网卡实时下行流量数据。
statistics
.
getIfaceRxBytes
(
"
wlan0
"
,
(
error
,
stats
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
stats
))
})
//获取指定网卡实时上行流量数据。
statistics
.
getIfaceTxBytes
(
"
wlan0
"
,
(
error
,
stats
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
stats
))
})
//获取蜂窝实时下行流量数据。
statistics
.
getCellularRxBytes
((
error
,
stats
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
stats
))
})
//获取蜂窝实时上行流量数据。
statistics
.
getCellularTxBytes
((
error
,
stats
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
stats
))
})
//获取所有网卡实时下行流量数据。
statistics
.
getAllRxBytes
((
error
,
stats
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
stats
))
})
//获取所有网卡实时上行流量数据。
statistics
.
getAllTxBytes
((
error
,
stats
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
stats
))
})
//获取指定应用实时下行流量数据。
let
uid
=
20010038
;
statistics
.
getUidRxBytes
(
uid
,
(
error
,
stats
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
stats
))
})
//获取指定应用实时上行流量数据。
let
uid
=
20010038
;
statistics
.
getUidTxBytes
(
uid
,
(
error
,
stats
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
stats
))
})
```
## 获取网卡/UID的历史流量统计数据
1.
获取指定网卡历史流量信息。
2.
获取指定应用历史流量信息。
```
js
let
ifaceInfo
=
{
iface
:
"
wlan0
"
,
startTime
:
1685948465
,
endTime
:
16859485670
}
//获取指定网卡历史流量信息。
statistics
.
getTrafficStatsByIface
(
ifaceInfo
),
(
error
,
statsInfo
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
"
getTrafficStatsByIface bytes of received =
"
+
JSON
.
stringify
(
statsInfo
.
rxBytes
));
console
.
log
(
"
getTrafficStatsByIface bytes of sent =
"
+
JSON
.
stringify
(
statsInfo
.
txBytes
));
console
.
log
(
"
getTrafficStatsByIface packets of received =
"
+
JSON
.
stringify
(
statsInfo
.
rxPackets
));
console
.
log
(
"
getTrafficStatsByIface packets of sent =
"
+
JSON
.
stringify
(
statsInfo
.
txPackets
));
});
let
uidInfo
=
{
ifaceInfo
:
{
iface
:
"
wlan0
"
,
startTime
:
1685948465
,
endTime
:
16859485670
},
uid
:
20010037
}
//获取指定应用历史流量信息。
statistics
.
getTrafficStatsByUid
(
uidInfo
),
(
error
,
statsInfo
)
=>
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
"
getTrafficStatsByUid bytes of received =
"
+
JSON
.
stringify
(
statsInfo
.
rxBytes
));
console
.
log
(
"
getTrafficStatsByUid bytes of sent =
"
+
JSON
.
stringify
(
statsInfo
.
txBytes
));
console
.
log
(
"
getTrafficStatsByUid packets of received =
"
+
JSON
.
stringify
(
statsInfo
.
rxPackets
));
console
.
log
(
"
getTrafficStatsByUid packets of sent =
"
+
JSON
.
stringify
(
statsInfo
.
txPackets
));
});
```
## 订阅流量变化事件
1.
订阅流量改变事件通知。
2.
取消订阅流量改变事件通知。
```
js
let
callback
=
data
=>
{
console
.
log
(
"
on netStatsChange, data:
"
+
JSON
.
stringify
(
data
));
}
//订阅流量改变事件通知。
statistics
.
on
(
'
netStatsChange
'
,
callback
);
//取消订阅流量改变事件通知。可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
statistics
.
off
(
'
netStatsChange
'
,
callback
);
statistics
.
off
(
'
netStatsChange
'
);
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录