微信小程序AP配网局域网通信
1,前言
最近在做IOT
的项目,里面有个小程序要用到AP配网,和设备做一个局域网通信。可是小程序会做安全域的校验,而局域网只能是http
的协议,并且局域网没有外网(无法百度等上网冲浪),在手机没有3g/4g/5g
网络下,通信可以正常进行吗?所以我做了一个调研。
2,相关资料
小程序官网原文如下:
基础库
2.4.0
提供了wx.startLocalServiceDiscovery
等一系列mDNS API
,可以用来获取局域网内提供mDNS
服务的设备的IP
。wx.request/wx.connectSocket/wx.uploadFile/wx.downloadFile
的url
参数允许为${IP}:${PORT}/${PATH}
的格式,当且仅当IP
与手机IP
处在同一网段且不与本机IP
相同(一般来说,就是同一局域网,如连接在同一个wifi
下)时,请求/连接才会成功。在这种情况下,不会进行安全域的校验,不要求必须使用https/wss
,也可以使用http/ws
。基础库2.7.0
开始,提供了wx.createUDPSocket
接口用于进行UDP
通信。通信规则同上,仅允许同一局域网下的非本机IP
。
wx.request({
url: 'http://10.9.176.40:828'
})
注:同一网段,指的是 IP
前三段相同且子网掩码也相同,比如 192.168.43.01
和 192.168.43.02
。
3,实验代码
小程序写好代码,发布体验版,手机和后端连接同一个 wifi
,接口地址是后端本地服务,通信成功,证明是可行的。
wx.request({
url: 'http://172.168.10.xxx/api',
success: (res) => {
showModal({
title: '温馨提示',
content: JSON.stringify(res),
showCancel: false
})
},
fail: (rej) => {
showModal({
title: '温馨提示',
content: JSON.stringify(rej),
showCancel: false
})
}
})
如果看了觉得有帮助的,我是@上进的鹏多多,欢迎 点赞 关注 评论;END
PS:在本页按F12,在console中输入document.querySelectorAll('.diggit')[0].click(),有惊喜哦
公众号
往期文章
- 超详细的Cookie增删改查
- 助你上手Vue3全家桶之Vue-Router4教程
- 助你上手Vue3全家桶之Vue3教程
- 助你上手Vue3全家桶之VueX4教程
- 使用nvm管理node.js版本以及更换npm淘宝镜像源
- 超详细!Vue-Router手把手教程
- vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令
- 微信小程序实现搜索关键词高亮
- 超详细!Vue的九种通信方式
- 超详细!Vuex手把手教程
个人主页