本章主要内容:

  • 使用Electron的dialog模块实现一个本机打开文件对话框
  • 促进主进程和渲染器进程之间的通信
  • 将功能从主进程暴露给渲染器进程
  • 使用Electron的remote模块从主进程导入功能到渲染器进程
  • 使用webContents模块将信息从主进程发送到呈现器进程,并使用ipcRenderer模块为来自主进程的消息设置监听器

在前一章中,我们为第一个Electron项目打下了基础,这是一个笔记应用程序,它从左窗格中取出Markdown,并在右窗格中将其呈现为HTML。我们设置了主进程并将其配置为生成一个呈现器。我们建立了package.json,安装了必要的依赖项,创建了主进程和呈现器进程,并布置了UI。我们还探索了使我们的应用程序看起来像桌面应用程序的方法,但是我们还没有添加一个传统web应用程序所不能做的功能。

现在,应用程序允许用户在Markdown视图中编写。当用户在Markdown视图中按下一个键,应用程序将自动呈现Markdown为HTML并在HTML视图中显示它。

在本章中,我们将添加触发本机文件对话框的功能,并从文件系统上的任何位置选择文本文件并将其加载到应用程序中。在这章的最后,渲染进程的浏览器窗口中的“打开文件”按钮将从主进程触发“打开文件”对话框。在此之前,有必要更深入地讨论一下如何在进程之间进行通信。我们从第3章的分支开始,可以在第三章代码找到它。本章末尾的代码可以在第四章代码-使用本机文件对话框和帮助进程间沟通中找到。或者,您可以下拉主分支并检出这两个分支中的任何一个。

1
2
3
git clone  https://github.com/sanshengshui/AUG

git checkout -f 第4章-使用本机文件对话框和帮助进 程间通讯

阅读全文 »

thingsboard官网: https://thingsboard.io/

thingsboard GitHub: https://github.com/thingsboard/thingsboard

thingsboard提供的体验地址: http://demo.thingsboard.io/

BY Thingsboard team

以下内容是在原文基础上演绎的译文。除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享。

原文地址: ThingsBoard API参考:CoAP设备API


CoAP

协议介绍

CoAP是一种在物联网世界的类web协议,它的详细规范定义在RFC 7252。COAP名字翻译来就是“受限应用协议”,顾名思义,使用在资源受限的物联网设备上。物联网设备的ram,rom都通常非常小,运行TCP和HTTP是不可以接受的。

协议特点

  1. CoAP协议网络传输层由TCP改为UDP。
  2. 它基于REST,server的资源地址和互联网一样也有类似url的格式,客户端同样有POST,GET,PUT,DELETE方法来访问server,对HTTP做了简化。
  3. COAP是二进制格式的,HTTP是文本格式的,COAP比HTTP更加紧凑。
  4. 轻量化,COAP最小长度仅仅4B,一个HTTP的头都几十个B了。
  5. 支持可靠传输,数据重传,块传输。 确保数据可靠到达。
  6. 支持IP多播, 即可以同时向多个设备发送请求。
  7. 非长连接通信,适用于低功耗物联网场景。
阅读全文 »


Thingsboard的MQTT设备协议

thingsboard官网: https://thingsboard.io/

thingsboard GitHub: https://github.com/thingsboard/thingsboard

thingsboard提供的体验地址: http://demo.thingsboard.io/

BY Thingsboard team

以下内容是在原文基础上演绎的译文。除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享。

原文地址: ThingsBoard API参考:MQTT设备API


MQTT基础知识

MQTT是一种轻量级的发布 - 订阅消息传递协议,可能使其最适合各种物联网设备。您可以在此处找到有关MQTT的更多信息。

ThingsBoard服务器节点充当MQTT Broker,支持QoS级别0(最多一次)和1(至少一次)以及一组预定义主题。


阅读全文 »

介绍

Minikube 是 K8S 官方为了开发者能在个人电脑上运行 K8S 而提供的一套工具。实现上是通过 Go 语言编写,通过调用虚拟化管理程序,创建出一个运行在虚拟机内的单节点集群。

注:从这里也可以看出,对于 K8S 集群的基本功能而言,节点数并没有什么限制。只有一个节点同样可以创建集群。

大家在实际开发和体验 :wheel_of_dharma: Kubernetes时,可能会遇到网络访问的原因或者其他的坑导致很多朋友无法使用minikube进行实验。因此我通过撰写这篇博客,让大家少走一点弯路。阿里云提供了一个修改版的Minikube,可以从阿里云的镜像地址来获取Docker镜像和配置。

阅读全文 »

本章主要内容:

  • 介绍我们将在接下来的几章中构建的应用程序
  • 配置我们的CSS样式表,使其看起来更像一个本机应用程序
  • 回顾在Electron中主进程和渲染器进程之间的关系
  • 为我们的主进程和渲染器进程实现基本功能
  • 在Electron渲染进程中访问Chrome开发者工具

我们的书签管理器是一个很好的开始,但它只触及了我们可以用Electron做什么。

在本章中,我们将更深入地探讨,并为与用户操作系统建立更紧密联系的应用程序打下基础。在接下来的几章中,我们将实现触发操作系统用户界面,对文件系统进行读写和访问剪贴板的功能。

我们正在构建一个简单的Markdown编辑器,它允许我们创建新的或打开现有的Markdown文件,将它们转换为HTML,并将HTML保存到文件系统和剪贴板中。让我们把这个应用程序称为Fire Sale,因为它毕竟是一个廉价编辑器,只是稍微聪明一点而已。

在本章的最后,我们将讨论在出现问题时调试Electron应用程序的技术和工具。

定义我们的应用

让我们从为我们不起眼的小应用程序设置目标开始。

对于桌面应用程序,我们的许多特性可能看起来有些平庸,这就是重点。它们是桌面应用程序的标准配置,但完全超出了传统web应用程序的能力范围,传统web应用程序无法访问独立浏览器选项卡之外的任何内容。

我们的应用程序将由两个窗格组成,用户可以编写或编辑Markdown和一个右窗格,该窗格以HTML形式呈现用户的Markdown。在顶部有一系列按钮,允许用户从文件系统加载文本文件,并将结果写入剪贴板或文件系统。

在应用程序的第一阶段,我们构建了以下的界面。在图3.1。我们还可以向效果图(以及随后的应用程序)添加额外的用户界面元素,但这是一个很好的开始。

图3.1 我们的应用程序的线框显示,用户可以在左侧窗格中输入文本,或者从用户的文件系统的文件中加载文本。

阅读全文 »