node-opcua的使用 --- [1] 简单server
一 前言
之前写过一些asyncua的文章,是基于python的,实际使用中感觉不太好用,关键的是有时候想运行在嵌入式平台上,而python的移植很麻烦…除非是像树莓派系统这种发行版,可以直接联网下载。
而node-opcua是基于nodejs的,nodejs官网提供了嵌入式的版本,如下红框,这样就省去了移植的麻烦,
node-opcua的github地址是https://github.com/node-opcua/node-opcua,其简介如下,
node-opcua is an implementation of an OPC UA stack fully written in Typescript for NodeJS.
实际使用时可以使用JavaScript或者TypeScript,这2种语言用起来都比C/C++方便很多,只是运行效率会比较低,可以用于原型验证。
本文讲述如何使用node-opcua来建立一个简单的OPCUA Server,并使用UaExpert进行连接。
二 建立Server
1. 初始化
首先需要安装nodejs,要求版本至少是12,去官网下载然后安装就行了,遇到问题可以网上搜下,不再赘述。
安装完后输入node -v
来查看版本,本人安装版本是17.3.0,运行于Win10
接着新建目录server_test,也可根据需要命名,然后cd进入这个目录,最后执行下面的命令进行初始化,
$ npm init # create a package.json
$ npm install node-opcua --save # add the node-opcua
输入第一个命令后,会有很多命令行提示,直接一路回车就行了,也可以根据需要自行修改;第二个命令用于下载node-opcua。
server_test目录就是一个工程目录。打开目录下的package.json可以看到下载的node-opcua的版本,
下载时也可以指定node-opcua的版本,如下这种,
$ npm install node-opcua@2.62.0 --save # add the node-opcua
2. Server代码及运行
文件名为sample_server.js,内容如下,
/*global require,setInterval,console */
const { OPCUAServer, Variant, DataType, StatusCodes, makeNodeId} = require("node-opcua");async function main() {// Let's create an instance of OPCUAServerconst server = new OPCUAServer({port: 4334, // the port of the listening socket of the serverresourcePath: "/UA/MyLittleServer", // this path will be added to the endpoint resource name});await server.initialize();console.log("initialized");server.start(function() {console.log("Server is now listening ... (press CTRL+C to stop)");console.log("port ", server.endpoints[0].port);});
}main();
代码比较简单,做了如下事情,
- 从node-opcua里引入需要的模块
- 创建OPCUAServer实例,指定port为4334,endpoint的URL是opc.tcp://:4334/UA/MyLittleServer
- 初始化server
- 运行server,运行成功后会执行一个回调函数
在终端下,输入下面的命令执行sample_server.js,
$ node sample_server.js
如下,
PS:第一次运行时会下载openssl,因为server提供的endpoint中有加密的,可能会有点慢,等等就行…
运行成功,最后使用UaExpert来连接这个server。打开UaExpert,然后点击工具栏的“+”来进行连接,弹出界面如下,
在红框里双击蓝色选项,输入以下内容,这是server endpoint的URL,
点击OK,然后展开这个URL,会看到如下的endpoint,总共9个,
这里选择Basic256Sha256 - Sign & Encrypt
进行连接,第一次连接时会弹出一个框,表示Server证书不被信任,可以点击信任,然后点击Continue就行了,连接成功后效果如下,
一切运行OK
三 总结
本文讲述如何使用node-opcua来建立一个简单server,可以看出非常好用,而且直接提供加密的endpoint,很不错。
node-opcua的使用 --- [1] 简单server相关推荐
- node aws 内存溢出_如何使用Node和AWS S3设置简单的图像上传
node aws 内存溢出 by Filip Jerga 由Filip Jerga 如何使用Node和AWS S3设置简单的图像上传 (How to set up simple image uploa ...
- Node.js 从零开发web server博客项目--项目初始化
本篇博客记录了<Node.js 从零开发web server博客项目>的原生开发系列内容. 开篇主要介绍原生项目的搭建,以及初步的项目结构设计. 一.项目初始化 新建项目目录,并进入到项目 ...
- js ftpclient linux server,Node.JS用Socket实现FTP Server服务器和Client客户端
通信过程 FTP协议其实就是主机和服务通过Socket进行固定格式的通信过程,当某客户端连接到FTP 服务器后,客户端发送指令: [参数] 服务会按以下格式返回: [参数或说明] 例如以下是FileZ ...
- node php聊天室,最简单的Nodejs聊天室示例
今天群里一个同学找我要一个nodejs聊天室的demo.给他了一个简单的例子,顺便记录下: 准备工作(前提是已经装好了nodejs):mkdir nodejs-demo cd nodejs-demo安 ...
- Node.js从零开发Web Server博客项目笔记
代码运行流程 首先开启服务器,在npm run dev的时候运行了bin目录下的www.js文件,启动http服务 当前端进行访问的时候,经过app.js文件 App.js是整个项目的入口文件,首先判 ...
- node.js 编写的一个简单的 HTTP 服务器
Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设你是在POSIX环境下运行它Linux 或 Mac OS X. [代码 ...
- 用 java 安装 mockserver_前端工程化-Mock Server:使用Node+json-server+mock.js搭建Mock Server...
目的 为了便于前后端分离开发,前端在本地启动mock服务进行开发,后续对接联调时只需将接口地址改成真实地址即可. 一个优秀的mock server应具备以下功能: 随机数据生成,避免手动创建数据: 真 ...
- Node.js基础汇总(一):什么是Node.js,创建最简单的Node.js应用,NPM介绍,安装express模块
目录 1. 什么是Node.js? 1.1 JavaScript是什么? 1.2 Node.js 是什么? 1.3 Node.js的原理 2. 创建最简单的Node.js应用 2.1 代码示例 2.2 ...
- Node中require方法的简单实现
B文件 module.exports = '测试测试'; 复制代码 A文件 let fs = require('fs');/** moduleName 模块名称*/ function read(mod ...
最新文章
- jQuery Mobile的学习时间bottonbutton的事件学习
- 【HIMI转载推荐之三】新手教程之如何向APP STORE提交应用
- WireShark抓浏览器的https包
- jsonp跨域读取cookie
- POJ1958-Strange Towers of Hanoi【递推】
- 分享:利用tcp_wrappers 保护服务安全
- oracle获取用户名,Oracle 用户名详解
- 免费网站推广,网站推广的方法
- php获取汉字拼音首字母的方法
- aspen稳态导出动态_Aspen Dynamics在控制中的应用
- TIA protal与SCL从入门到精通(2)——EN/ENO 机制
- java List复制:浅拷贝与深拷贝
- HTML之FrameSet,Frame和Iframe区别
- 填写运算符判断等式是否成立
- Science:前额叶皮层在哺乳动物上的解剖学异同
- 【老生谈算法】matlab实现匈牙利算法源码——匈牙利算法
- 网上涉廉政网络舆情信息工作怎么做的平台服务方案
- 分布式文件存储:Google File System 浅析
- 解决驱动器中没有磁盘的问题
- Unity中文界面整理