首页
学习
活动
专区
工具
TVP
发布

在Javascript中发现Bonjour?也许?

在JavaScript中发现Bonjour,可以使用一个名为bonjour的npm包来实现。Bonjour是一种网络服务发现协议,它允许在本地网络上的设备之间相互发现。

bonjour包是一个Node.js模块,可以用于发现和发布网络上的Bonjour服务。它可以让你在本地网络上发现其他设备和服务,例如打印机、文件共享等。

要在JavaScript中使用Bonjour,首先需要安装bonjour包:

npm install bonjour

然后,你可以使用以下代码来发现本地网络上的Bonjour服务:

const bonjour = require('bonjour')();

bonjour.find({ type: 'http' }, (service) => {
  console.log(`Found ${service.name} at ${service.host}:${service.port}`);
});

这将会搜索所有类型为http的Bonjour服务,并在找到它们时打印出它们的名称、主机名和端口号。

除了find方法之外,bonjour包还提供了其他方法,例如publishunpublish,用于发布和取消发布Bonjour服务。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,这些产品可能并不适用于所有Bonjour相关的应用场景,但它们是腾讯云提供的常见产品,可能对你有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET Core 运行 JavaScript

一.前言 .NET Framework 时,我们可以通过V8.NET等组件来运行 JavaScript,不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core ,我们如何在 .NET...Core 运行 JavaScript 呢,答案是使用 NodeServices。...关于为何有 .NET Core 执行 JavaScript 这种需求,比较特殊,举个栗子:当你做模拟登录时,目标网站可能采用一些加密算法来计算特殊的值,如果你要完全模拟,那么除了用C#翻译这个算法还有个办法就是直接将这段加密算法...二.什么是 NodeServices NodeServices 是一个 ASP.NET Core 中间件,将它添加到 ASP.NET Core 管道,该中间件调用Node在运行时执行JavaScript...首先,我们将首先创建一个包含返回问候消息的 NodeJs module 的简单JavaScript文件,保存在 scripts/greeter.js文件: // greeter.js module.exports

3.7K20

现代 JavaScript 编写异步任务

Node.js 开辟了一个不同环境甚至 web 之外编写 JavaScript 的新时代。当然异步的情况也是可能的,例如创建新目录或写文件。...更好的语法突出显示和更清晰的错误提示信息对编码过程中提供的帮助下,对于开发人员来说,编写更容易理解的代码变得更具可预测性,并且执行的情况更好,更容易发现可能的陷阱。...对返回值进行的后续操作无需存储不会破坏代码节奏的 mkdir 之类的变量;也无需以后的步骤创建新的作用域来访问 result 的值。...可以肯定地说,Promise 是该语言中引入的基本工件,对于 JavaScript 启用 async/await 表示法是必需的,你可以现代浏览器和最新版本的 Node.js 中使用它。...与十年前刚刚开始浏览器编写代码时相比,我觉得现在 JavaScript 是“异步友好”的。

2.3K30

JavaScript 对数组进行排序

排序是您在学习JavaScript时将使用的众多基本方法之一。让我们回顾一下如何对不同的数据类型使用排序方法。 ---- 字符串 默认情况下, 排序方法按字母顺序组织其元素。...(在后面的示例,此示例将有一个更广泛的版本!在此示例,我们将使用 slice() 并将带有注入数字的字符串转换为数字。这样,我们就可以对所有数组元素进行排序,其中每个元素都是相同的数据类型。...本例,我们将使用正则表达式。 正则表达式(Regex)是组成搜索模式的字符序列。搜索模式可用于文本搜索和文本替换操作。 (当第一次面对Regex时,它真的很吓人。我个人还是觉得很困惑。...撇开外观不讲,它是一种高可用性和强大的代码类型,许多情况下都很有用。)...{id: 5, name: 'Sade'} {id: 8, name: 'Nicolette'} {id: 9, name: 'Megan'} */ 个人笔记: 正则表达式真的很酷,但到目前为止,我的职业生涯

4.5K70

使用 mDNS 局域网轻松发现系统

(mDNS 也是 Bonjour 的一部分,可在 Mac OS 上找到。) 本文假设你有两个系统运行受支持的 Fedora 版本(27 或 28)。它们的主机名是 castor 和 pollux。...两个系统执行同样的步骤 。 设置主机名并测试 现在你已完成常见的配置工作,请使用以下方法之一设置每个主机的名称: 如果你正在使用 Fedora Workstation,你可以使用这个步骤。...第一台机器上这么做:$ hostnamectl set-hostname castor。...如果你 pollux ping castor.local,同样的技巧也适用。现在在网络访问你的系统更方便了! 此外,如果你的路由器也支持这个服务,请不要感到惊讶。...但是,如果遇到麻烦,请使用 avahi-browse 和 avahi-tools 软件包的其他工具来查看可用的服务。

2.2K10

JavaScript的数据结构(链表)

JavaScript链表是一种数据结构,用于存储和组织一系列的元素。它由一系列节点(Node)组成,每个节点包含了两部分:数据域(存储数据)和指针域(指向下一个节点)。...然而,大多数语言中这种数据结构有一个缺点:数组的大小是固定的,从数组的起点或中间插入或移除项的成本很高,因为需要移动元素。...然而,链表的缺点是访问链表的特定元素的时间复杂度较高,需要从头开始遍历链表直到找到目标节点。 ---- 详细的看一下列表 JavaScript,可以使用对象来实现链表。...remove(element):从列表移除一项。 indexOf(element):返回元素列表的索引。如果列表没有该元素则返回-1。...toString():由于列表项使用了Node类,就需要重写继承自JavaScript对象默认的toString方法,让其只输出元素的值。

11510

JavaScript的数据结构(队列)

当我们浏览器打开新标签时,就会创建一个任务队列。这是因为每个标签都是单线程处 理所有的任务,它被称为事件循环。...JavaScript,可以使用数组(Array)或链表(Linked List)等数据结构来实现队列。 其实可以用窗口排队打饭为案例,先来的先排队打饭。...队列,新元素被添加到队列末尾,并等待其他已存在的元素被处理后才能被移除。当删除元素时,总是从队首开始移除元素。...因此可以对它们使用默认的出列操作: ---- 总结 JavaScript,队列(Queue)是一种具有先进先出(FIFO, First-In-First-Out)特性的数据结构,它可以用于计算机程序管理和存储元素...队列主要有两个基本操作: 入队(enqueue)和出队(dequeue),JavaScript可以使用数组(Array)或链表(Linked List)等数据结构来实现队列。

16630

【译】如何避免JavaScript阻塞DOM

原文链接:https://www.sitepoint.com/avoiding-dom-blocking/ 浏览器和在诸如Node.js的运行时环境JavaScript程序是运行在单线程上的。...例如:当一个按钮被点击后触发了一个事件,这个事件执行一个函数,函数内进行了一些计算并更新DOM。一旦完成,浏览器便空闲下来,从任务队列取出下一个任务来处理。...默认设置下,前面的例子“入侵者”通过改变left-margin来移动。这个属性及相似的属性如left和width会导致动画的每一步浏览器都需要对整个页面文档进行回流和重绘。...现在尝试另一次sessionStorage写入,我们会发现即使GIF动画仍然是停滞的,“入侵者”可以正常地持续运动。注意到因为肢体的摆动是由JavaScript控制的,所以它们仍然会因阻塞而暂停。...一个好的折衷办法是使用内存的对象来提高性能,然后合适的时机对数据进行持久化——例如在卸载页面时: // get previously-saved data var store = JSON.parse

2.6K10

JavaScript的数据结构(队列)

当我们浏览器打开新标签时,就会创建一个任务队列。这是因为每个标签都是单线程处理所有的任务,它被称为事件循环。...JavaScript,可以使用数组(Array)或链表(Linked List)等数据结构来实现队列。其实可以用窗口排队打饭为案例,先来的先排队打饭。...队列,新元素被添加到队列末尾,并等待其他已存在的元素被处理后才能被移除。当删除元素时,总是从队首开始移除元素。...因此可以对它们使用默认的出列操作:图片总结在JavaScript,队列(Queue)是一种具有先进先出(FIFO, First-In-First-Out)特性的数据结构,它可以用于计算机程序管理和存储元素...队列主要有两个基本操作: 入队(enqueue)和出队(dequeue),JavaScript可以使用数组(Array)或链表(Linked List)等数据结构来实现队列。

14520

适配器JavaScript的体现

适配器JavaScript的体现 适配器设计模式JavaScript中非常有用,处理跨浏览器兼容问题、整合多个第三方SDK的调用,都可以看到它的身影。...其实在日常开发,很多时候会不经意间写出符合某种设计模式的代码,毕竟设计模式就是老前辈们总结提炼出来的一些能够帮助提升开发效率的一些模版,源于日常的开发。...而适配器其实在JavaScript应该是比较常见的一种了。 维基百科,关于适配器模式的定义为: 软件工程,适配器模式是一种软件设计模式,允许从另一个接口使用现有类的接口。...代码的体现 而转向到编程,我个人是这样理解的: 将那些你不愿意看见的脏代码藏起来,你就可以说这是一个适配器 接入多个第三方SDK 举个日常开发的例子,我们在做一个微信公众号开发,里边用到了微信的支付模块...,官方已经实现了类似这样的工具函数:util.promisify 小结 个人观点:所有的设计模式都不是凭空想象出来的,肯定是开发的过程,总结提炼出的一些高效的方法,这也就意味着,可能你并不需要在刚开始的时候就去生啃这些各种命名高大上的设计模式

1.3K10

JavaScript 通过 queueMicrotask() 使用微任务

它们很相似;都由位于某个队列的 JavaScript 代码组成并在合适的时候运行。但是,只有迭代开始时队列存在的任务才会被事件循环一个接一个地运行,这和处理微任务队列是殊为不同的。...基于现代浏览器的 JavaScript 开发中有一个高度专业化的特性,那就是允许你调度代码跳转到其他事情之前,而那些事情原本是处于用户计算机中一大堆等待发生的事情集合之中的。...简单的传入一个 JavaScript 函数,以 queueMicrotask() 方法处理微任务时供其上下文调用即可;取决于当前执行上下文,queueMicrotask() 以定义的形式被暴露在 Window...何时使用微服务 本章节,我们来看看微服务特别有用的场景。...例子 简单微任务示例 在这个简单的例子,我们将看到入列一个微任务后,会引起其回调函数顶层脚本完毕后运行。

3K10

javascript对于this指向的再次理解

那么我们看一下这个例子 var length = 3; function fn () { console.log(this.length) } fn();   函数调用是最外层发生的...浏览器环境下,全局变量和window对象的属性是等价的,所以定义了length全局变量就相当于向window对象添加了一个length属性。...function函数体内的有一个很神奇的对象arguments这个对象是由调用该函数时所传的实参决定的,而不是由定义函数时由形参决定的。...这一点也是javascript语言广为诟病的一点,无法依据定义函数的形参个数来实现方法的重载,只能靠argumengs的length属性来实现。...所以在上面例子,fn 和 3这两个变量都挂载arguments对象下面,还由于arguments是一个类数组对象所以它有length属性,也可以像使用数组一样来使用arguemnts。

1.2K20

JavaScript的数据结构(链表)

JavaScript链表是一种数据结构,用于存储和组织一系列的元素。它由一系列节点(Node)组成,每个节点包含了两部分:数据域(存储数据)和指针域(指向下一个节点)。...然而,大多数语言中这种数据结构有一个缺点:数组的大小是固定的,从数组的起点或中间插入或移除项的成本很高,因为需要移动元素。链表存储有序的元素集合,但不同于数组,链表的元素在内存并不是连续放置的。...然而,链表的缺点是访问链表的特定元素的时间复杂度较高,需要从头开始遍历链表直到找到目标节点。---详细的看一下列表JavaScript,可以使用对象来实现链表。...remove(element):从列表移除一项。indexOf(element):返回元素列表的索引。如果列表没有该元素则返回-1。...toString():由于列表项使用了Node类,就需要重写继承自JavaScript对象默认的toString方法,让其只输出元素的值。

10020

微服务架构 : 微服务的架构, 也许不需要 Integration Hub ( 三 )

前言 微服務的核心概念, api layer 主要是微服务与微服务外部的使用者界面、系统或设备之间构建 endpoint proxy 与 load balancer。...所以, 微服务的架構, 架构师规划 Integration Hub; 如: Mule,Camel, ESB…等等, 以使微服務間可进行 , 合约变换 (contract transformation...[图一: api layer 主要是微服务与微服务外部的使用者界面、系统或设备之间构建 endpoint proxy 与 load balancer] 本文 但是, 微服务的架构, 规划所谓的 Integration...所以, 微服务的架构, 可直接采用服务编舞 (Service Choreography) 的方式; 由微服务自身决定需调用那个微服务, 而不需经由某一个指挥者, 来指挥接下来应调用那一个微服务。...由微服务自身决定需调用那个微服务, 而不需经由某一个指挥者, 来指挥接下来应调用那一个微服务] 整合第三方软件 (integration with third-party apps): 我想, 大家也许已经知道该怎么做了

1.9K00
领券