npm 包 mdns 使用教程

若是您需要开发一个基于局域网的 web 应用,那么 mdns 绝对是您必须要用到的 npm 包之一。mdns 是一款开源的、跨平台的多播 DNS 服务的 npm 包,实现了使用组播 DNS SD 协议进行服务发现,支持 Mac OSx、Windows、Linux、iOS 和 Android 等平台。使用 mdns,我们可以轻松地在本地网络中发现和连接服务。

安装

在使用 mdns 前,要求您已经提前安装了 Node.js 和 npm。请在终端中执行以下命令来安装 mdns。

--- - ----

使用方式

发现可用服务

通过 mdns,我们可以发现已经在网络内注册并且拥有特定服务类型和名称的服务。

----- ---- - ----------------

----- ------- - -------------------------------------

----------------------- --------- -- -
  ------------------ --------- ------------- ----- ------------- --------------
---

----------------

以上代码可以监听名为 'http' 的 TCP 服务,并在该服务被找到时,输出服务的名称、主机和端口号。

注册服务

通过 mdns,我们还可以在网络内注册一个服务。

----- ---- - ----------------

----- -- - ------------------------------------------ --- -
  ----- -------------
---

-----------

以上代码会在网络内广播一个名为 'my-web-app' 的 Web 服务,并监听于 80 端口。

实例分析

现在,我们将一步一步来实现一个较为简单的实例。

在本地主机上,我们启动用于提供 HTTP 服务的一个很小的 Node.js 应用,其中 Hello World 以及以下内容被输出。

----- ---- - ----------------

----- ------ - --------------------------- --------- -- -
  ------------------------
  ------------------- ---------
---

--------------------
------------------- ------- -- -------------------------

请将以上代码保存在一个名为 'http-server.js' 的文件中。

接下来,我们将创建一个用于发现 HTTP 服务的应用,并连接到它。请将以下代码保存为名为 'http-client.js' 的文件。

----- ---- - ----------------
----- - ---- - - ---------------------------- -------

----- ------- - -------------------------

----------------------- --------- -- -
  ------------------ ---- --------- ------------- --------------

  ----- -------------- - -
    ----- -------------
    ----- -------------
    ----- ----
  --

  ----- ------- - ---------------------------- ---------- -- -
    ------------------- ------- -- -
      ------------------------ -------
    ---

    ------------------ -- -- -
      ----------------
    ---
  ---

  --------------
---

----------------

在终端中,我们运行如下命令以启动发现应用。

---- --------------

接着,重启发现应用,可以看到输出了以下内容。

----- ---- ------- --------- ----
--------- ----- ------

以上应用演示了如何从一个 Node.js 应用中发现和连接其他服务。

结束语

通过 mdns,我们可以快速、高效地找到本地网络内的其他服务,并实现网络应用的快速部署和开发。希望本文对您有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/85216


猜你喜欢

  • npm 包 Coffee-Sprites 使用教程

    在前端开发中,我们常常需要使用雪碧图(Sprites)技术来减少页面的 HTTP 请求次数,提高页面性能,同时可以减小图片的大小。Coffee-Sprites 是一个可以让我们更加方便使用雪碧图技术的...

    5 年前
  • npm 包 auto-sprites 使用教程

    在前端开发中,图标及雪碧图已经成为了必不可少的一部分。使用雪碧图有助于减少 HTTP 请求的数量,提高网页的加载速度,而 auto-sprites 正是一个很好的工具,可以帮助我们自动生成雪碧图,提高...

    5 年前
  • npm 包 pixel-sorter 使用教程

    在前端开发中,我们常常需要处理图片,而使用 npm 包可以大大简化这个过程。其中一个 npm 包,叫做 pixel-sorter,可以用来处理图片的像素排序,进而创造出有趣的效果。

    5 年前
  • npm 包 arango 使用教程

    前言 arango 是一个支持多模型的数据库,支持文档(类似于 mongodb),图形和键值存储。 本教程将详细介绍如何使用 npm 包 arango 来在前端项目中使用 arango 数据库。

    5 年前
  • npm 包 modx 使用教程

    什么是 modx? modx 是一个基于 React 的状态管理库。 它提供了一种简洁而强大的方式来管理你的应用程序的状态。通过将每个状态都作为一个可观察对象来处理,它使得应用程序的状态在整个应用程序...

    5 年前
  • npm 包 engine.io-reconnect 使用教程

    前言 在前端开发中,我们经常需要处理与服务器的实时通信,比如聊天室、游戏等等。其中,websocket 是一个常用的技术方案,而 engine.io 则是一个支持多种传输协议的 websocket 实...

    5 年前
  • npm 包 bind-all-component 使用教程

    前言 在前端开发中,我们经常需要在组件之间传递数据或者进行组件之间的通信。在 React 中,通过 props 和 state 完成组件之间的数据传递。但是当我们需要在一些场景下,例如多层嵌套组件中进...

    5 年前
  • npm 包 aws-billing 使用教程

    如果你在 AWS 上运行着自己的服务,那么你对帐单可能会感到头疼。每月的费用报告能够真正帮助你理解你的费用和计划。不过,如果你需要一些其他的功能,例如监控实例的费用、了解多个账户之间的费用、组织成本和...

    5 年前
  • npm 包 @knit/knit 使用教程

    简介 NPM(Node Package Manager) 是 Node.js 的包管理器,使得 Node.js 开发人员可以轻松地共享和重用代码包。在前端开发中,NPM 包已成为一种常见的工具和技术。

    5 年前
  • npm 包 ls-lodash 使用教程

    简介 ls-lodash 是一个基于 lodash 的小工具库,提供了一些常用的函数和方法,使前端开发更加便捷。 本文将介绍如何使用 ls-lodash,包括安装、引入和使用。

    5 年前
  • npm 包 @xotic750/eslint-find-rules 使用教程

    本篇文章介绍 npm 包 @xotic750/eslint-find-rules 的使用方法及其深度和学习意义。该包可以用于查找 eslint 规则,并为您提供有关规则及其用法的详细信息。

    5 年前
  • npm 包 @types/webpack 使用教程

    在前端开发中,Webpack 是一个常用的工具,它可以实现模块化打包和代码转换等功能。@types/webpack 是 TypeScript 官方为了方便 TypeScript 开发者使用 Webpa...

    5 年前
  • npm 包 @semantic-release/npm 使用教程

    作为前端开发者,我们的工作常常涉及到将代码成功发布到 npm 上。但是,手动管理版本号、打标签、发布等一系列繁琐的操作不仅耗时耗力,还容易出错。因此,我们需要一个自动化发布工具来解决这个问题。

    5 年前
  • npm包@semantic-release/github使用教程

    简介 @semantic-release/github是一个npm包,用于将semantic-release与Github集成,实现自动发布Github release和changelog。

    5 年前
  • npm 包 @iopipe/eslint-config-iopipe 使用教程

    前言 在进行前端开发时,我们通常会用到 ESLint 来规范我们的代码风格和语法,从而让我们的代码更加清晰易懂。而针对 AWS Lambda 开发的项目,则有一个特殊的需求:优化函数的性能,减少内存占...

    5 年前
  • npm 包 airbnb-prop-types 使用教程

    在前端开发过程中,我们经常需要进行组件的数据校验。为了减少重复的工作和提高开发效率,我们可以使用成熟的 npm 包。其中,airbnb-prop-types 包就是一种用于校验 React 组件 pr...

    5 年前
  • npm 包 co-ware 使用教程

    什么是 co-ware? co-ware 是一个基于 generator 的中间件处理器。它允许您使用 generator 函数编写更简洁和易于理解的中间件,而无需担心这些 generator 函数如...

    5 年前
  • npm 包 co-fs-plus 使用教程

    简介 co-fs-plus 是一个基于 co 和 fs 的 Node.js 模块,它封装了一些常用的异步文件操作,使得我们可以通过 co/yield 的方式来进行文件读写等操作,让代码更加简便易懂,同...

    5 年前
  • npm 包 x-configs 使用教程

    简介 在前端开发中,我们常常需要维护一些配置信息,例如 API 地址、图片资源路径等。为了方便我们对这些配置进行管理,有些前端开发者会使用一些配置文件,如 JSON、YAML 等。

    5 年前
  • npm 包 x-common 使用教程

    X-Common 是一个面向前端开发人员的 npm 包,为开发者提供常用的 JavaScript 函数和常量。它不仅是一个工具库,还是一本 API 文档。 本文旨在介绍 X-Common 的使用及其提...

    5 年前

相关推荐

    暂无文章