npm 包 mdns-js 使用教程

阅读时长 4 分钟读完

简介

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

纠错
反馈