微信小程序AP配网局域网通信

1,前言

最近在做IOT的项目,里面有个小程序要用到AP配网,和设备做一个局域网通信。可是小程序会做安全域的校验,而局域网只能是http的协议,并且局域网没有外网(无法百度等上网冲浪),在手机没有3g/4g/5g网络下,通信可以正常进行吗?所以我做了一个调研。

2,相关资料

小程序官网原文如下:

基础库 2.4.0 提供了 wx.startLocalServiceDiscovery 等一系列 mDNS API,可以用来获取局域网内提供 mDNS 服务的设备的 IPwx.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.01192.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(),有惊喜哦


面向百度编程

公众号

weixinQRcode.png

往期文章

个人主页

posted @ 2022-05-31 18:01  鹏多多  阅读(743)  评论(0编辑  收藏  举报