微信小程序局域网通信
基于 mDNS 协议实现 http 和 socket 通信
Windows 上未找到可用的 mDNS 服务发现工具,Linux 上可使用 avahi,MacOS 上可使用 Bonjour。
本项目使用 Linux 作为通信终端。
项目地址:https://github.com/MuBeiSAMA/lan-communication-mp
技术栈
服务发现
server
client
服务端(Linux)
安装 avahi
1 | sudo apt-get install avahi-utils |
注册服务
1 | avahi-publish-service -s "yourServiceName" _http._tcp 1111 |
参数分别为:服务名称,服务类型,端口号。
运行后即可在局域网中被发现。
运行 server
nodejs,npm 或 yarn 为必备环境,不做赘述。
先进入 server 文件夹
1 | cd server |
安装依赖
1 | # 使用 yarn |
运行脚本
1 | node index.js |
终端打印 listening on *:1111
即表示运行成功,将持续监听 1111 端口,与注册服务时暴露的端口号一致。
脚本基于 express 和 socket.io 分别提供了 http 和 socket 的通信能力。
客户端(小程序)
小程序局域网通信详情可见 局域网通信。
服务发现
1 | /** |
服务数据
onLocalServiceFound 方法回调中的数据如图:
根据数据中的 ip 和 port 信息,即可进行 http 和 socket 通信。
Tips
- 一些 OS 可能不支持 mDNS 服务发现,这时可使用微信开发工具的真机调试功能进行调试。