首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript 对象的深拷贝(及其工作原理)

正文共:1300 字 预计阅读时间:6 分钟 作者:Chris Chu 翻译:疯狂的技术宅 来源:alligator 如果你打算用 JavaScript 进行编码,那么就需要了解对象的工作方式。...对象是 JavaScript 最重要的元素之一,深入理解了它会使你在编码时得心应手。克隆对象时,它并不像看起来那么简单。 当你不想改变原始对象时,就需要克隆对象。...那么让我们 JavaScript 创建一个对象: 1let testObject = { 2 a: 1, 3 b: 2, 4 c: 3 5}; 在上面的代码片段,我们初始化一个新对象并将其分配给变量... externalObject 为 animal 属性赋值一个新值将改变 originalObject 和 shallowClonedObject,因为浅拷贝只能将引用复制到 externalObject...原文:https://alligator.io/js/deep-cloning-javascript-objects/

2.3K30

函数表达式JavaScript是如何工作的?

JavaScript,函数表达式是一种将函数赋值给变量的方法。函数表达式可以出现在代码的任何位置,而不仅仅是函数声明可以出现的位置。...函数表达式的语法如下: var myFunction = function() { // 函数体 }; 上述代码,将一个匿名函数赋值给变量myFunction。...函数表达式的工作方式如下: 1:变量声明:使用var、let或const关键字声明一个变量,例如myFunction。 2:函数赋值:将一个函数赋值给该变量。函数可以是匿名函数,也可以是具名函数。...这样的函数函数内部和外部都可以通过函数名来调用自身。...因此,使用函数表达式之前,需要确保该表达式已经被赋值。此外,函数表达式还可以根据需要在运行时动态创建函数,具有更大的灵活性。

18050
您找到你想要的搜索结果了吗?
是的
没有找到

使用 WebSocket 客户端连接 MQTT 服务器

简介 近年来随着 Web 前端的快速发展,浏览器新特性层出穷,越来越多的应用可以浏览器端或通过浏览器渲染引擎实现,Web 应用的即时通信方式 WebSocket 得到了广泛的应用。... WebSocket API ,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。...相较于另一个 JavaScript 连接库来说,其功能较少,推荐使用。...而 WebSocket 协议默认端口同 HTTP 保持一致 (80/443),填写端口则表明使用 WebSocket 的默认端口连接;而使用标准 MQTT 连接时则无需指定端口,如 MQTT.js ...准备工作 这篇文章 https流程和原理 对证书认证进行了详细的阐述,EMQ 君总结启用 SSL/TLS 证书需要具备的条件是: 将域名绑定到 EMQ 服务器公网地址:CA 机构签发的证书签名是针对域名的

16K21

如何部署 MQTT 服务器

本篇教程,我们将安装和配置Mosquitto,并使用Let的加密SSL证书来保护我们的MQTT流量。如果您还没有腾讯云的服务器,可以先点击这里进行免费套餐的试用。...该文件执行以下操作: 禁用匿名登录 使用我们的密码文件启用密码验证 仅在端口1883上为localhost设置不安全的侦听器 端口8883上设置安全侦听器 端口8083上设置基于websocket...让我们接下来测试我们的MQTT服务器。 测试Mosquitto 我们步骤1安装了一些命令行MQTT客户端。...因为我们为mqtt.example.com发布了SSL证书,如果我们尝试安全连接到localhost,我们会收到一条错误消息,指出主机名与证书主机名匹配。...浏览器打开Eclipse Paho javascript客户端实用程序并填写连接信息,如下所示: 主机是您的Mosquitto服务器的域,mqtt.example.com 端口是8083 ClientId

9.5K63

物联网入门:搭建MQTT服务器

新的终端,使用mosquitto_sub订阅测试主题: mosquitto_sub -h localhost -t test -h用于指定MQTT服务器的主机名,-t是主题名。...因为我们的ssl证书是为mqtt.example.com,如果我们尝试连接到localhost我们将得到一个错误,即主机名与证书主机名匹配。...这意味着您的服务器已经完全设置好了!如果您希望扩展MQTT协议以使用WebSocket,则可以执行最后一步。...第五步-WebSocket上配置MQTT(可选) 为了Web浏览器中使用JavaScript来使用MQTT,该协议被调整为标准WebSocket工作。如果不需要此功能,则可以跳过此步骤。...浏览器打开mqtt-admin (校者注:这个页面已经失效了,你可以访问:https://github.com/hobbyquaker/mqtt-admin 获取项目自己搭建服务端),您将看到以下内容

30.6K135

我有 7种 实现web实时消息推送的方案,7种!

图片 DeferredResult可以允许容器线程快速释放占用的资源,阻塞请求线程,以此接受更多的请求提升系统的吞吐量,然后启动异步工作线程处理真正的业务逻辑,处理完成调用DeferredResult.setResult...iframe流 iframe流就是页面插入一个隐藏的标签,通过src请求消息数量API接口,由此服务端和客户端之间创建一条长连接,服务端持续向iframe传输数据。...图片 SSE与WebSocket作用相似,都可以建立服务端与浏览器之间的通信,实现服务端向客户端推送消息,但还是有些许不同: SSE 是基于HTTP协议的,它们不需要特殊的协议或服务器实现即可工作WebSocket...MQTT协议为什么物联网(IOT)如此受偏爱?而不是其它协议,比如我们更为熟悉的 HTTP协议呢? 首先HTTP协议它是一种同步协议,客户端请求后需要等待服务器的响应。... 服务端使用@ServerEndpoint注解标注当前类为一个websocket服务器,客户端可以通过ws://localhost:7777/webSocket

6K44

如何在CentOS上安装Mosquitto服务器

新的终端,使用mosquitto_sub订阅测试主题: mosquitto_sub -h localhost -t test -h用于指定MQTT服务器的主机名,-t是主题名称。...因为我们的ssl证书是为mqtt.example.com,如果我们尝试连接到localhost我们将得到一个错误,即主机名与证书主机名匹配。...这意味着您的服务器已经完全设置好了!如果您希望扩展MQTT协议以使用WebSocket,则可以执行最后一步。...第5步 - 通过Websockets配置MQTT(可选) 为了Web浏览器中使用JavaScript来使用MQTT,该协议被调整为标准WebSocket工作。...浏览器打开mqtt-admin (校者注:这个页面已经失效了,你可以访问:https://github.com/hobbyquaker/mqtt-admin 获取项目自己搭建服务端),您将看到以下内容

12.3K11

如何在Ubuntu上搭建MQTT服务器

新的终端,使用mosquitto_sub订阅测试主题: mosquitto_sub -h localhost -t test -h用于指定MQTT服务器的主机名,-t是主题名。...因为我们的ssl证书是为mqtt.example.com,如果我们尝试连接到localhost我们将得到一个错误,即主机名与证书主机名匹配。...这意味着您的服务器已经完全设置好了!如果您希望扩展MQTT协议以使用WebSocket,则可以执行最后一步。...第五步 - 通过Websockets配置MQTT(可选) 为了Web浏览器中使用JavaScript来使用MQTT,该协议被调整为标准WebSocket工作。...该消息将显示您的mosquitto_sub终端。 结论 现在,我们已经建立了一个安全的、受密码保护的MQTT服务器,并使用了腾讯云SSL证书。

12.9K12

如何在Ubuntu 18.04上安装和保护Mosquitto MQTT消息传递代理

该文件执行以下操作: 禁用匿名登录 使用我们的密码文件启用密码验证 仅在端口1883上为localhost设置不安全的侦听器 端口8883上设置安全侦听器 端口8083上设置基于websocket...让我们接下来测试我们的MQTT服务器。 第5步 - 测试Mosquitto 我们步骤1安装了一些命令行MQTT客户端。...因为我们为mqtt.example.com发布了SSL证书,如果我们尝试安全连接到localhost,我们会收到一条错误消息,指出主机名与证书主机名匹配。...要测试websocket功能,我们将使用基于浏览器的公共MQTT客户端。...浏览器打开Eclipse Paho javascript客户端实用程序并填写连接信息,如下所示: 主机是您的Mosquitto服务器的域,mqtt.example.com 端口是8083 ClientId

2.5K30

树莓派搭建MQTT服务器(基于EMQ)「建议收藏」

文章目录 1.准备工作 1.1知识储备 2.安装EMQ 3.测试MQTT服务器 3.1 新建服务器管理员 3.2 登录到服务器后台 3.3 MQTT客户端测试 1.准备工作 1.1知识储备 关于MQTT...这意味着EMQ X 可以部署 x86_64 架构的服务器上,也可以部署 Raspberry Pi 这样的 ARM 设备上。...或在树莓派的浏览器访问: http://localhost:18083/ 输入之前创建好的管理员账号 关于服务器的一些端口说明: 1883:MQTT 协议端口 8883:MQTT/...SSL 端口 8083:MQTT/WebSocket 端口 8080:HTTP API 端口 18083:Dashboard 管理控制台端口 注:若访问网址失败,可通过以下排错 查看服务器是否正常启动...创建MQTT客户端 配置如下 保存并返回,这里标绿则说明连接成功 订阅一个主题并测试 右测观察到发送的内容即说明服务器的功能一切正常

2.8K31

如何在 Ubuntu 上安装 EMQX MQTT 服务器

发布前性能测试,EMQX 团队通过一个 23 节点的集群达成了 1 亿 MQTT 连接+每秒 100 万消息吞吐,这使得 EMQX 5.0 成为目前为止全球最具扩展性的 MQTT 服务器。...本文将以 EMQX 开源版 5.0.4 为例,介绍如何在 Ubuntu 系统搭建一个单节点的 MQTT 服务器,并对搭建过程容易遇到的常见问题进行逐一演示。...图片 MQTT 连接测试 接下来我们点击左侧菜单栏里面的 WebSocket 客户端 ,该客户端可测试 MQTT over Websocket,验证 MQTT 服务器是否已部署成功。...图片 消息发布 如下图,我们向 testtopic 发布了两条消息,且接收成功,表明 MQTT 服务器已部署成功且正常运行。...图片 测试认证 接下来我们使用 Dashboard 提供的 Websocket 工具来测试认证是否已配置成功。连接配置里输入刚才创建的用户名与密码,然后点击连接。

1.6K20

91-STM32+ESP8266+AIR202302基本控制篇--功能扩展-关于网络上mqtt.js 和 mqtt.min.js 微信小程序包的使用

的一个插件 用户可以去安装这个插件,或者使用网络的另一个mqttmqtt.js 和 mqtt.min.js 用这两个包就不需要设置以下两句 proxy_set_header Sec-WebSocket-Protocol...mqtt; more_clear_headers Sec-WebSocket-Protocol; MQTT.js下载地址 https://github.com/mqttjs/MQTT.js CDN地址...:(复制整个文件,保存为XXXX.js文件即可) https://unpkg.com/mqtt@3.0.0/dist/mqtt.min.js https://unpkg.com/mqtt@3.0.0/dist...3.为了和先前使用的做到通用,我和以前一样做了封装 mqtt.min.js是 CDN链接上下载的包 mqtt.js是我mqtt.min.js包的基础上封装了一层. ?...移植使用(测试地址 wxs://mnifdv.cn/mqtt) 1.把这两个文件放到自己的小程序的utils文件夹 ? 2.根据自己的MQTT服务器更改以下信息 ?

1.6K42

不要小看WebSocket!长连接、有状态、双向、全双工都是王炸技能

之前,瑞哥给大家介绍了MQTT技术: 物联网协议的王者:MQTT MQTT是一种长连接的技术,所谓的长连接,就是保持长久的连接,每次连接可以传输多次数据,并且连接双方有保活机制维持连接。...WebSocket 是一种用于 Web 浏览器和服务器之间创建快速双向通道的协议,通过单个 TCP 连接持续传输数据。...广泛应用于Web 浏览器和 Web 服务器之间通信 WebSocket URL 使用ws 或者 wss,而不是http、https WebSocket 是如何工作的?...首先,让我们看看在没有WebSocket的情况下如何调用网站, Internet 上,网页通常通过HTTP 连接传输,数据通过协议进行通信,然后网站就会显示浏览器,然后用户的每个动作,比如单击或者双击某个按钮或者链接...当通过 HTTP 调用网站时,客户端首先必须向服务器发送请求,然后服务器通过发送请求的内容进行响应,换句话说,HTTP 基于简单的请求和响应模型工作,这会产生很大的延迟。

2.3K30

非GO--物联网平台emqx和mqttVue和Nodejs里面的使用

MQTT协议的工作原理如下:设备通过TCP/IP或WebSocket等协议与MQTT代理(broker)建立连接。设备可以发布消息到一个特定的主题(topic),或者订阅一个主题以接收相关的消息。...关于emqx平台EMQ X 是一个开源的分布式 MQTT 消息代理服务器,它实现了 MQTT 协议的 V3.1 和 V3.1.1 版本,并支持 MQTT over WebSocketMQTT over...,你自己看着办进去之后就是我们可以在里面测试链接然后客户端可以看到我们自己的链接使用 Vue2链接本地emqx服务端首先先安装mqtt,npm官网地址如下:mqtt - npm (npmjs.com...emqx服务器原理和上面类似,具体请直接看代码,我写了注释的,就在此不做解释了,要先安装mqtt,然后此处的导入,我是通过npm i mqtt 之后,然后把mqttmqtt文件单独复制出来使用了,...如果是连本地的mqtt服务器的话,要求双方同一个局域网下面,而云服务的方便许多,无视距离的限制上面的都是基于本地的,其实比较不方便,而且emqx平台也提供给个人一个免费的个人专有的云服务器,也可以进行连接

53523

轻量通讯协议 --- MQTT

MQTT 的主要特点包括以下几点: 轻量级:MQTT 协议本身非常简洁,消息头部占用较少的带宽,使其低带宽网络运行效率高。...适应性:MQTT 可以多种网络协议上运行,包括 TCP/IP、WebSocket 和其他协议。 总之,MQTT 是一种非常适合物联网和传感器网络的通信协议,因其轻量级和高效的特性而受到广泛应用。...可以在这里找到软件包:https://www.nuget.org/packages/MQTTnet/ Visual StudioPackage Manager控制台中使用以下命令手动安装MQTTnet...一、下载EMQX EMQX 官网提供了丰富的文档,Quick Start 地址:https://www.emqx.io/docs/zh/v5.2/ 这里建议安装最新版本,建议降低版本,若安装最新版本...按照上文中命令启动EMQX服务 使用MQTTX Desktop,设置 「host」 为localhost ,「prot」 为 1883 ,连接服务,如下图: 二、代码编写 这样准备工作就做好了,编写创建发布客户端代码

2.6K21

7 个 MQTT 客户端工具

支持 Light、Dark、Night 三种主题模式切换 支持 WebSocket 连接至 MQTT 服务器 支持 Hex, Base64, JSON, Plaintext 支持简体中文、英文、日文、土耳其文及匈牙利文...另外它没有实现对 WebSocket 的支持, MQTT over WebSocket 的测试场景无法使用。...特性 预定义消息模板 通过系统主题 $SYS 获取 broker 状态 记忆最近使用主题的 通过 Nashorn Engine ,支持 JavaScript 脚本 支持日志显示,显示连接的日志信息 跨平台桌面...开发者无需本地下载和安装 MQTTX,即可使用 WebSocket 浏览器快速连接到 MQTT 服务器,更快地开发和调试 MQTT 服务和应用。...特性 轻量级命令行工具,支持 debug 模式 支持加密及非加密连接至 MQTT 服务器 便于远程服务器测试 下载 下载地址:https://github.com/eclipse/mosquitto

14.7K21
领券