简介
mdns-js 是一个 Node.js 模块,用于在局域网内进行 Zeroconf 操作,如发现网络中的服务、广播服务等。
此模块使用了 Multicast DNS (mDNS) 协议,允许设备在没有 DHCP 或 DNS 服务器的情况下,在局域网内自动发现和通讯。
安装
使用 npm 安装 mdns-js:
--- ------- -------
用法
发现服务
--- ---- - ------------------- --- -------- - - ----------------------------- ------------------------------- ------ -- --- ------- - ----------------------------------------------- ------------------- -------- -- - ------------------- --- -------------------- -------- ------ - ---------------------- ------ --- --------------------- -------- ------ - ----------------------- ------ --- ----------------
以上代码创建了一个 _workstation._tcp.local. 类型的服务浏览器,成功运行后能监听到局域网内有关该类型服务的更新和解析消息。
广播服务
--- ---- - ------------------- --- -- - ------------------------------------------ ------ -----------
以上代码创建了一个 HTTP 服务广告,告诉网络中的其他设备当前机器上提供了 HTTP 服务,并监听 8080 端口。
深入理解
mdns-js 模块内部将各种 mDNS 消息解析为对应的对象,并提供了一些操作接口。
下面是一个例子,手动发送一些 mDNS 消息:
--- ---- - ------------------- --- ------ - -------------------- ------------- ---------- - - ----- --------------------------- ----- ----- - - ---
以上代码手动发送一个问题 name: '_workstation._tcp.local.'
,期待可以在网络上接收到回复。
启动应答程序:
--- ---- - ------------------- --- ------ - ------------------------------------------- -------------------- -------- ----- ---- - ------------------------------ --- - -- ------- -- ------ - ------------ - ----- --------------------------- ----- ------ ----- -------------------------------- - --- - --- ---
以上代码创建了一个 DNS 服务器,监听请求,并对接收到的 _workstation._tcp.local.
类型的问题进行相应。
启动后,再运行前一段代码,控制台会输出:
--------- -------- - - ----- --------------------------- ----- ------ ------ ------ ------ ----- ----- -------------------------------- - -
意义与指导
随着 IoT 设备网络化越来越广泛,Zeroconf 技术的重要性不言而喻。在嵌入式设备上使用 Node.js 则成为了一个非常流行的方案,因为 Node.js 能方便地与其他语言进行通讯,并在很多平台上都有完善的支持,故 mdns-js 在嵌入式设备上的应用也越来越普遍。
因此,对于前端工程师而言,掌握 mdns-js 的使用对于接下来进一步研究嵌入式开发,或者对于设备接入我们前端模块等等都是非常有帮助的。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/71347