小程序中的mDNS主要有10个API
/**
* 开始搜索
*/
startDiscovery:function(){
let that = this
serviceList = []
resolveFailList = []
wx.startLocalServiceDiscovery({
serviceType:'_http._tcp.',
success:function(res){
that.onLocalService()
},
fail:function(err){
console.log(err)
},
complete:function(){
console.log('complete')
}
})
},
/**
* stopDiscovery
*/
stopDiscovery:function(){
let that = this
wx.stopLocalServiceDiscovery({
success: function () {
that.showTips('停止搜索成功','success')
serviceList = []
resolveFailList = []
that.setData({
lists:[],
resolveFailList:[]
})
that.offLocalService()
},
fail: function () {
that.showTips('停止搜索失败,请重试!')
},
complete: function () {
console.log('stopDiscovery complete')
}
})
},
/**
* 提示方法
*/
showTips:function(title='出错啦',icon='none'){
wx.showToast({
title: title,
icon: icon,
duration:2000
})
},
/**
* 监听方法合集
*/
onLocalService:function(){
let that = this
// 监听服务发现事件
wx.onLocalServiceFound(function (obj) {
console.log(obj)
serviceList.push(obj)
that.setData({
lists: serviceList
})
})
// 监听服务解析失败事件
wx.onLocalServiceResolveFail(function (obj){
resolveFailList.push(obj)
that.setData({
resolveFailList: resolveFailList
})
})
// 监听服务离开
wx.onLocalServiceLost(function (obj){
that.showTips('有服务离开啦');
console.log(obj)
})
// 监听搜索停止
wx.onLocalServiceDiscoveryStop(function (obj){
console.log('监听到搜索停止事件')
})
},
/**
* offLocalService
*/
offLocalService: function () {
console.log('是否执行此部分数据')
// 取消监听服务发现事件
wx.offLocalServiceFound(function () {
console.log('取消监听服务发现事件 成功')
})
// 取消监听服务解析失败事件
wx.offLocalServiceResolveFail(function () {
console.log('取消监听 mDNS 服务解析失败的事件 成功')
})
// 取消监听服务离开
wx.offLocalServiceLost(function () {
console.log('取消监听服务离开事件 成功')
})
// 取消监听搜索停止
wx.offLocalServiceDiscoveryStop(function () {
console.log('取消监听 mDNS 服务停止搜索的事件 成功')
})
},
小程序中的mDNS
小程序中的mDNS主要有10个API
其中2个是主动事件,4个监听事件回调和4个取消监听事件回调
他们之间的关系是一一对应的。
而且,除了2个主动事件外,其他8个方法都是传1个回调方法过去
2个主动事件分别是:
1.开始搜寻局域网下的mDNS服务 wx.startLocalServiceDiscovery
2.停止搜索 mDNS 服务 wx.stopLocalSeviceDiscovery
4个监听事件回调分别是:
1.监听mDNS服务发现的事件 wx.onLocalServiceFound
2.监听mDSN服务解析失败的时间 wx.onLocalServiceResolveFail
3.监听mDNS服务离开的事件 wx.onLocalServiceLost
4.监听mDNS 服务停止搜索的事件 wx.onLocalServiceDiscoveryStop
4个取消监听事件回调分别是(目前这4个API无效?不知是否是我调用方式不对。但无所谓,这4个方法就算无效也没什么影响。)
1.取消监听mDNS 服务发现的事件 wx.offLocalServiceFound
2.取消监听mDNS 服务解析失败的事件 wx.offLocalServiceResolveFail
3.取消监听mDNS 服务离开的事件 wx.offLocalServiceLost
4.取消监听mDNS 服务停止搜索的事件 wx.offLocalServiceDiscoveryStop
链接:https://www.jianshu.com/p/e66b0d400807