Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
5a109278
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看板
未验证
提交
5a109278
编写于
3月 28, 2023
作者:
O
openharmony_ci
提交者:
Gitee
3月 28, 2023
浏览文件
操作
浏览文件
下载
差异文件
!16486 增加MDNS相关的文档
Merge pull request !16486 from liyufan/master
上级
63211bb4
ca6c8711
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
668 addition
and
0 deletion
+668
-0
zh-cn/application-dev/reference/apis/js-apis-net-mdns.md
zh-cn/application-dev/reference/apis/js-apis-net-mdns.md
+551
-0
zh-cn/application-dev/reference/errorcodes/errorcode-net-mdns.md
...pplication-dev/reference/errorcodes/errorcode-net-mdns.md
+117
-0
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-net-mdns.md
0 → 100644
浏览文件 @
5a109278
# @ohos.net.mdns (MDNS管理)
MDNS即多播DNS(Multicast DNS),提供局域网内的本地服务添加、移除、发现、解析等能力。
> **说明:**
> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```
js
import
mdns
from
'
@ohos.net.mdns
'
```
## mdns.addLocalService
addLocalService(context: Context, serviceInfo: LocalServiceInfo, callback: AsyncCallback
\<
LocalServiceInfo>): void
添加一个mDNS服务,使用callback方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|----------------------------------|-----------|-------------------------------------------------|
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| serviceInfo |
[
LocalServiceInfo
](
#localserviceinfo
)
| 是 | mDNS服务的信息。 |
| callback | AsyncCallback
\<
[
LocalServiceInfo
](
#localserviceinfo
)
> | 是 | 回调函数。成功添加error为undefined,data为添加到本地的mdns服务信息。 |
**错误码:**
| 错误码ID | 错误信息 |
|---------|---|
| 401 | Parameter error. |
| 2100002 | Operation failed. Cannot connect to service. |
| 2100003 | System internal error. |
| 2204003 | Callback duplicated. |
| 2204008 | Service instance duplicated. |
| 2204010 | Send packet failed. |
>**错误码说明:**
> 以上错误码的详细介绍参见[MDNS错误码](../errorcodes/errorcode-net-mdns.md)。
**示例:**
```
js
let
localServiceInfo
=
{
serviceType
:
"
_print._tcp
"
,
serviceName
:
"
servicename
"
,
port
:
5555
,
host
:
{
address
:
"
10.14.**.***
"
,
},
serviceAttribute
:
[{
key
:
"
111
"
,
value
:
[
1
]
}]
}
mdns
.
addLocalService
(
context
,
localServiceInfo
,
function
(
error
,
data
)
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
data
))
});
```
## mdns.addLocalService
addLocalService(context: Context, serviceInfo: LocalServiceInfo): Promise
\<
LocalServiceInfo>
添加一个mDNS服务,使用Promise方式作为异步方法。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|----------------------------------|-----------|-------------------------------------------------|
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| serviceInfo |
[
LocalServiceInfo
](
#localserviceinfo
)
| 是 | mDNS服务的信息。 |
**返回值:**
| 类型 | 说明 |
| --------------------------------- | ------------------------------------- |
| Promise
\<
[
LocalServiceInfo
](
#localserviceinfo
)
> | 以Promise形式返回添加的mdns服务信息。 |
**错误码:**
| 错误码ID | 错误信息 |
|---------|---|
| 401 | Parameter error. |
| 2100002 | Operation failed. Cannot connect to service. |
| 2100003 | System internal error. |
| 2204003 | Callback duplicated. |
| 2204008 | Service instance duplicated. |
| 2204010 | Send packet failed. |
>**错误码说明:**
> 以上错误码的详细介绍参见[MDNS错误码](../errorcodes/errorcode-net-mdns.md)。
**示例:**
```
js
let
localServiceInfo
=
{
serviceType
:
"
_print._tcp
"
,
serviceName
:
"
servicename
"
,
port
:
5555
,
host
:
{
address
:
"
10.14.**.***
"
,
},
serviceAttribute
:
[{
key
:
"
111
"
,
value
:
[
1
]
}]
}
mdns
.
addLocalService
(
context
,
localServiceInfo
).
then
(
function
(
data
)
{
console
.
log
(
JSON
.
stringify
(
data
))
});
```
## mdns.removeLocalService
removeLocalService(context: Context, serviceInfo: LocalServiceInfo, callback: AsyncCallback
\<
LocalServiceInfo>): void
移除一个mDNS服务,使用callback方式作为异步方法。
**系统能力**
: SystemCapability.Communication.NetManager.MDNS
**参数**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|----------------------------------|-----------|-------------------------------------------------|
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| serviceInfo |
[
LocalServiceInfo
](
#localserviceinfo
)
| 是 | mDNS服务的信息。 |
| callback | AsyncCallback
\<
[
LocalServiceInfo
](
#localserviceinfo
)
> | 是 | 回调函数。成功移除error为undefined,data为移除本地的mdns服务信息。 |
**错误码:**
| 错误码ID | 错误信息 |
|---------|---|
| 401 | Parameter error. |
| 2100002 | Operation failed. Cannot connect to service. |
| 2100003 | System internal error. |
| 2204002 | Callback not found. |
| 2204008 | Service instance duplicated. |
| 2204010 | Send packet failed. |
>**错误码说明:**
> 以上错误码的详细介绍参见[MDNS错误码](../errorcodes/errorcode-net-mdns.md)。
**示例:**
```
js
let
localServiceInfo
=
{
serviceType
:
"
_print._tcp
"
,
serviceName
:
"
servicename
"
,
port
:
5555
,
host
:
{
address
:
"
10.14.**.***
"
,
},
serviceAttribute
:
[{
key
:
"
111
"
,
value
:
[
1
]
}]
}
mdns
.
removeLocalService
(
context
,
localServiceInfo
,
function
(
error
,
data
)
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
data
))
});
```
## mdns.removeLocalService
removeLocalService(context: Context, serviceInfo: LocalServiceInfo): Promise
\<
LocalServiceInfo>
移除一个mDNS服务. 使用Promise方式作为异步方法。
**系统能力**
: SystemCapability.Communication.NetManager.MDNS
**参数**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|----------------------------------|-----------|-------------------------------------------------|
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| serviceInfo |
[
LocalServiceInfo
](
#localserviceinfo
)
| 是 | mDNS服务的信息。 |
**返回值:**
| 类型 | 说明 |
| --------------------------------- | ------------------------------------- |
| Promise
\<
[
LocalServiceInfo
](
#localserviceinfo
)
> | 以Promise形式返回移除的mdns服务信息。 |
**错误码:**
| 错误码ID | 错误信息 |
|---------|---|
| 401 | Parameter error. |
| 2100002 | Operation failed. Cannot connect to service. |
| 2100003 | System internal error. |
| 2204002 | Callback not found. |
| 2204008 | Service instance duplicated. |
| 2204010 | Send packet failed. |
>**错误码说明:**
> 以上错误码的详细介绍参见[MDNS错误码](../errorcodes/errorcode-net-mdns.md)。
**示例:**
```
js
let
localServiceInfo
=
{
serviceType
:
"
_print._tcp
"
,
serviceName
:
"
servicename
"
,
port
:
5555
,
host
:
{
address
:
"
10.14.**.***
"
,
},
serviceAttribute
:
[{
key
:
"
111
"
,
value
:
[
1
]
}]
}
mdns
.
removeLocalService
(
context
,
localServiceInfo
).
then
(
function
(
data
)
{
console
.
log
(
JSON
.
stringify
(
data
))
});
```
## mdns.createDiscoveryService
createDiscoveryService(context: Context, serviceType: string): DiscoveryService
返回一个DiscoveryService对象,该对象用于发现指定服务类型的mDNS服务。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|---------|-----------| ------------------------------------------------------------ |
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| serviceType | string | 是 | 需要发现的mDNS服务类型。|
**返回值:**
| Type | Description |
| ----------------------------- |---------------------------------|
| DiscoveryService | 基于指定serviceType和Context的发现服务对象。 |
**Example**
```
js
let
serviceType
=
"
_print._tcp
"
;
let
discoveryService
=
mdns
.
createDiscoveryService
(
context
,
serviceType
);
```
## mdns.resolveLocalService
resolveLocalService(context: Context, serviceInfo: LocalServiceInfo, callback: AsyncCallback
\<
LocalServiceInfo>): void
解析一个mDNS服务,使用callback方式作为异步方法。
**系统能力**
: SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|----------------------------------|-----------|-------------------------------------------------------------|
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| serviceInfo |
[
LocalServiceInfo
](
#localserviceinfo
)
| 是 | mDNS服务的信息。 |
| callback | AsyncCallback
\<
[
LocalServiceInfo
](
#localserviceinfo
)
> | 是 | 回调函数。成功移除error为undefined,data为解析的mdns服务信息。 |
**错误码:**
| 错误码ID | 错误信息 |
|---------|----------------------------------------------|
| 401 | Parameter error. |
| 2100002 | Operation failed. Cannot connect to service. |
| 2100003 | System internal error. |
| 2204003 | Callback duplicated. |
| 2204006 | Request timeout. |
| 2204010 | Send packet failed. |
>**错误码说明:**
> 以上错误码的详细介绍参见[MDNS错误码](../errorcodes/errorcode-net-mdns.md)。
**示例:**
```
js
let
localServiceInfo
=
{
serviceType
:
"
_print._tcp
"
,
serviceName
:
"
servicename
"
,
port
:
5555
,
host
:
{
address
:
"
10.14.**.***
"
,
},
serviceAttribute
:
[{
key
:
"
111
"
,
value
:
[
1
]
}]
}
mdns
.
resolveLocalService
(
context
,
localServiceInfo
,
function
(
error
,
data
)
{
console
.
log
(
JSON
.
stringify
(
error
))
console
.
log
(
JSON
.
stringify
(
data
))
});
```
## mdns.resolveLocalService
resolveLocalService(context: Context, serviceInfo: LocalServiceInfo): Promise
\<
LocalServiceInfo>
解析一个mDNS服务,使用Promise方式作为异步方法。
**系统能力**
: SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|--------------|-----------|-----------------------------------------------------|
| context | Context | 是 | 应用的上下文。
<br>
FA模型的应用Context定义见
[
Context
](
js-apis-inner-app-context.md
)
。
<br>
Stage模型的应用Context定义见
[
Context
](
js-apis-inner-application-uiAbilityContext.md
)
。 |
| serviceInfo |
[
LocalServiceInfo
](
#localserviceinfo
)
| 是 | mDNS服务的信息。 |
**返回值:**
| 类型 | 说明 |
|----------------------------| ------------------------------------- |
| Promise
\<
[
LocalServiceInfo
](
#localserviceinfo
)
> | 以Promise形式返回解析的mDNS服务信息。|
**错误码:**
| 错误码ID | 错误信息 |
|---------|----------------------------------------------|
| 401 | Parameter error. |
| 2100002 | Operation failed. Cannot connect to service. |
| 2100003 | System internal error. |
| 2204003 | Callback duplicated. |
| 2204006 | Request timeout. |
| 2204010 | Send packet failed. |
>**错误码说明:**
> 以上错误码的详细介绍参见[MDNS错误码](../errorcodes/errorcode-net-mdns.md)。
**示例:**
```
js
let
localServiceInfo
=
{
serviceType
:
"
_print._tcp
"
,
serviceName
:
"
servicename
"
,
port
:
5555
,
host
:
{
address
:
"
10.14.**.***
"
,
},
serviceAttribute
:
[{
key
:
"
111
"
,
value
:
[
1
]
}]
}
mdns
.
resolveLocalService
(
context
,
localServiceInfo
).
then
(
function
(
data
){
console
.
log
(
JSON
.
stringify
(
data
));
})
```
## DiscoveryService
指定服务类型的发现服务对象。
### startSearchingMDNS
startSearchingMDNS(): void
开始搜索局域网内的mDNS服务。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**示例:**
```
js
let
discoveryService
=
mdns
.
createDiscoveryService
(
context
,
serviceType
);
discoveryService
.
startSearchingMDNS
();
```
### stopSearchingMDNS
stopSearchingMDNS(): void
停止搜索局域网内的mDNS服务。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**示例:**
```
js
let
discoveryService
=
mdns
.
createDiscoveryService
(
context
,
serviceType
);
discoveryService
.
stopSearchingMDNS
();
```
### on('discoveryStart')
on(type: 'discoveryStart', callback: Callback
<
{
serviceInfo:
LocalServiceInfo
,
errorCode
?
:
MDNS_ERR
}
>
): void
订阅开启监听mDNS服务的通知。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|--------------|-----------|-----------------------------------------------------|
| type | string | 是 |订阅事件,固定为'discoveryStart'。
<br>
discoveryStart:开始搜索局域网内的mDNS服务事件。 |
| callback | Callback
<
{
serviceInfo:
[
LocalServiceInfo
](
#localserviceinfo
),
errorCode
?
:
[
MDNS_ERR
](
#mdns_err
)}
>
| 是 | mDNS服务的信息和事件错误信息。 |
**示例:**
```
js
// 参考mdns.createDiscoveryService
let
discoveryService
=
mdns
.
createDiscoveryService
(
context
,
serviceType
);
discoveryService
.
startSearchingMDNS
();
discoveryService
.
on
(
'
discoveryStart
'
,
(
data
)
=>
{
console
.
log
(
JSON
.
stringify
(
data
));
});
discoveryService
.
stopSearchingMDNS
();
```
### on('discoveryStop')
on(type: 'discoveryStop', callback: Callback
<
{
serviceInfo:
LocalServiceInfo
,
errorCode
?
:
MDNS_ERR
}
>
): void
订阅停止监听mDNS服务的通知。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|--------------|-----------|-----------------------------------------------------|
| type | string | 是 |订阅事件,固定为'discoveryStop'。
<br>
discoveryStop:停止搜索局域网内的mDNS服务事件。 |
| callback | Callback
<
{
serviceInfo:
[
LocalServiceInfo
](
#localserviceinfo
),
errorCode
?
:
[
MDNS_ERR
](
#mdns_err
)}
>
| 是 | mDNS服务的信息和事件错误信息。 |
**示例:**
```
js
// 参考mdns.createDiscoveryService
let
discoveryService
=
mdns
.
createDiscoveryService
(
context
,
serviceType
);
discoveryService
.
startSearchingMDNS
();
discoveryService
.
on
(
'
discoveryStop
'
,
(
data
)
=>
{
console
.
log
(
JSON
.
stringify
(
data
));
});
discoveryService
.
stopSearchingMDNS
();
```
### on('serviceFound')
on(type: 'serviceFound', callback: Callback
<
[
LocalServiceInfo
](
#localserviceinfo
)
>
): void
订阅发现mDNS服务的通知。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|--------------|-----------|-----------------------------------------------------|
| type | string | 是 |订阅事件,固定为'serviceFound'。
<br>
serviceFound:发现mDNS服务事件。 |
| callback | Callback
<
[
LocalServiceInfo
](
#localserviceinfo
)
>
| 是 | mDNS服务的信息。 |
**示例:**
```
js
// 参考mdns.createDiscoveryService
let
discoveryService
=
mdns
.
createDiscoveryService
(
context
,
serviceType
);
discoveryService
.
startSearchingMDNS
();
discoveryService
.
on
(
'
serviceFound
'
,
(
data
)
=>
{
console
.
log
(
JSON
.
stringify
(
data
));
});
discoveryService
.
stopSearchingMDNS
();
```
### on('serviceLost')
on(type: 'serviceLost', callback: Callback
<
[
LocalServiceInfo
](
#localserviceinfo
)
>
): void
订阅移除mDNS服务的通知。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
|-------------|--------------|-----------|-----------------------------------------------------|
| type | string | 是 |订阅事件,固定为'serviceLost'。
<br>
serviceLost:移除mDNS服务事件。 |
| callback | Callback
<
[
LocalServiceInfo
](
#localserviceinfo
)
>
| 是 | mDNS服务的信息。 |
**示例:**
```
js
// 参考mdns.createDiscoveryService
let
discoveryService
=
mdns
.
createDiscoveryService
(
context
,
serviceType
);
discoveryService
.
startSearchingMDNS
();
discoveryService
.
on
(
'
serviceLost
'
,
(
data
)
=>
{
console
.
log
(
JSON
.
stringify
(
data
));
});
discoveryService
.
stopSearchingMDNS
();
```
## LocalServiceInfo
mDNS服务信息
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
| 名称 | 类型 | 必填 | 说明 |
| --------------------- | ---------------------------------- | --- | ------------------------ |
| serviceType | string | 是 | mDNS服务的类型。格式_
\<
name>.
<_tcp
/
_udp
>
,name长度小于63字符并且不能包含字符'.'。 |
| serviceName | string | 是 | mDNS服务的名字。 |
| port | number | 否 | mDNS服务的端口号。 |
| host |
[
NetAddress
](
js-apis-net-connection.md#netaddress
)
| 否 | mDNS服务设备的IP地址。采用设备的IP,添加服务和移除服务时候不生效。 |
| serviceAttribute | serviceAttribute
\<
[
ServiceAttribute
](
#serviceattribute
)
> | 否 | mDNS服务属性信息。 |
## ServiceAttribute
mDNS服务属性信息
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
| 名称 | 类型 | 必填 | 说明 |
| --------------------- | ---------------------------------- | --- | ------------------------ |
| key | string | 是 | mDNS服务属性键值,键值长度应该小于9个字符。 |
| value | Array
\<
number> | 是 | mDNS服务属性值。 |
## MDNS_ERR
mDNS错误信息。
**系统能力**
:SystemCapability.Communication.NetManager.MDNS
| 名称 | 值 | 说明 |
| --------------- | ---- | ----------- |
| INTERNAL_ERROR | 0 | 内部错误导致操作失败。 |
| ALREADY_ACTIVE | 1 | 服务已经存在导致操作失败。 |
| MAX_LIMIT | 2 | 请求超过最大限制导致操作失败。(暂不支持) |
\ No newline at end of file
zh-cn/application-dev/reference/errorcodes/errorcode-net-mdns.md
0 → 100644
浏览文件 @
5a109278
# MDNS错误码
> **说明:**
>
> 以下仅介绍本模块特有错误码,通用错误码请参考[通用错误码说明文档](errorcode-universal.md)。
## 2100002 连接服务失败
**错误信息**
Operation failed. Cannot connect to service.
**错误描述**
操作失败,连接系统服务发生异常。
**可能原因**
服务发生异常。
**处理步骤**
检查系统服务运行状态是否正常。
## 2100003 系统内部错误
**错误信息**
System internal error.
**错误描述**
系统内部错误。
**可能原因**
1.
内存异常。
2.
空指针。
**处理步骤**
1.
检查内存空间是否充足,清理内存后重试。
2.
系统异常,请稍后重试或重启设备。
## 2204003 重复注册
**错误信息**
Callback duplicated.
**错误描述**
callback 已经存在。
**可能原因**
重复注册相同名称和类型的mDNS服务。
**处理步骤**
检查mDNS服务是否存在。
## 2204008 删除服务失败
**错误信息**
Service instance duplicated.
**错误描述**
想要移除的服务不存在。
**可能原因**
之前已经把服务删除,二次删除相同服务。
**处理步骤**
检查mDNS服务是否存在。
## 2204010 发送消息失败
**错误信息**
Send packet failed.
**错误描述**
发送信息失败。
**可能原因**
局域网内不存在该mDNS服务。
**处理步骤**
检查局域网内目标mDNS服务是否存在。
## 2204006 解析服务超时
**错误信息**
Request timeout.
**错误描述**
解析服务超时。
**可能原因**
局域网内不存在该类型的mDNS服务。
**处理步骤**
检查局域网内目标类型的mDNS服务是否存在。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录