RMS TO EAP通过MQTT简单实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、MQTT
- 二、使用步骤
- 1.rabbitmq支持 MQTT 协议
- 2.RMS监听消息和发送消息
- 3.Web监听消息和发送消息
- 4.RMS和WEB客户端启动后
- 总结
前言
EAP是MES与设备的桥梁,EAP通过SECS国际标准协议与机台进行数据传输。我们公司RMS也是通过SECS国际标准协议与机台进行数据传输,只是多了本该在MES上的业务逻辑,放到了RMS上,架构上没这么使用EAP这样分工明确,RMS把业务逻辑拿掉改造下也能成为EAP,我就简单试试
提示:以下是本篇文章正文内容,下面案例可供参考
一、MQTT
1、使用消息队列
MES和其他系统通过消息队列来发送信息给RMS,RMS收到消息在通过SECS\GEM 与半导体设备通讯
优点:
1、对系统进行解耦,提高响应速度,系统功能向内聚合,对外开放;
2、对系统异步功能进行剥离,减少功能耦合,提供开发效率;
有优点也有缺点,具体可网上查,这就不系讲
MQTT协议是一种消息列队传输协议,采用订阅、发布机制,订阅者只接收自己已经订阅的数据,非订阅数据则不接收,既保证了必要的数据的交换,又避免了无效数据造成的储存与处理。因此在工业物联网中得到广泛的应用.
我使用的是rabbitmq,因为rabbitmq 支持 MQTT 协议,还有MQTT 协议还支持用于Web消息推送,实现起来也比较简单,既支持WEB,有支持客户端,还是通用的协议,任何系统都能使用此协议与RMS通讯
二、使用步骤
1.rabbitmq支持 MQTT 协议
代码如下(示例):
第一种 rabbitmq_mqtt 提供与后端服务交互使用,对应端口1883。rabbitmq-plugins enable rabbitmq_mqtt
第二种 rabbitmq_web_mqtt 提供与前端交互使用,对应端口15675。rabbitmq-plugins enable rabbitmq_web_mqtt
2.RMS监听消息和发送消息
在RMS加入代码如下(示例):
RMS监听到其他系统发过来消息,在通过SECS\GEM 与半导体设备通讯,机器返回结果后再通过MQTT将结果发给其他系统
3.Web监听消息和发送消息
代码如下(示例):
<script type="text/javascript">// mqtt协议rabbitmq服务var brokerIp = "10.20.36.64";// mqtt协议端口号var port = 15675;// 接受推送消息的主题var topic = "test";// mqtt连接client = new Paho.MQTT.Client(brokerIp, port, "/ws", "clientId_" + parseInt(Math.random() * 100, 10));var options = {timeout: 3, //超时时间keepAliveInterval: 30, //心跳时间userName: "admin", //用户名password: "admin", //密码onSuccess: function () {console.log(("连接成功~"));client.subscribe("test1", { qos: 1 });},onFailure: function (message) {alert(message.errorMessage);console.log(("连接失败~" + message.errorMessage));}};// 考虑到https的情况if (location.protocol == "https:") {options.useSSL = true;}client.connect(options);console.log(("已经连接到" + brokerIp + ":" + port));// 连接断开事件client.onConnectionLost = function (responseObject) {console.log("失去连接 - " + responseObject.errorMessage);};// 接收消息事件client.onMessageArrived = function (message) {alert("222:"+message.payloadString);console.log("接受主题: " + message.destinationName + "的消息: " + message.payloadString);$("#arrivedDiv").append("<br/>" + message.payloadString);var count = $("#count").text();count = Number(count) + 1;$("#count").text(count);};// 推送给指定主题function sendMessage() {var a = $("#message").val();if (client.isConnected()) {var message = new Paho.MQTT.Message(a);message.destinationName = topic;client.send(message);alert(message);}else {alert("isConnected:" + client.isConnected());}}</script>
4.RMS和WEB客户端启动后
测试WEB端
测试RMS端
rabbitmq 在队列会产生mqtt-开头的队列,当你关闭客户端,这队列也随之消失。
总结
记录点点滴滴
RMS TO EAP通过MQTT简单实现相关推荐
- RMS TO EAP通过MQTT简单实现(2)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.系统的结构 二.使用步骤 1.启动设备 2.RMS To EAP 3.Web客户端去通讯 总结 前言 提示:这里可 ...
- Activemq MQTT 简单消息推送示例
Activemq MQTT 简单消息推送示例 简介 简单使用 MQTT 连接 Activemq 进行消息推送的示例代码 编写详情 环境准备 使用docker启动Activemq,查看M ...
- 繁易MQTT简单操作说明
繁易MQTT简单操作说明 一,emqttd的安装与部署 1,下载emqttd软件安装包 https://www.emqx.io/ 2,下载解压之后,cmd进入软件bin目录下,输入emqttd con ...
- 单片机与阿里云的mqtt简单通信(塔石nb-iot篇)
目录 前期准备: 阿里云部分 塔石部分 单片机部分 这篇文章主要记录了一次单片机通过塔石的模块,实现与阿里云的mqtt通信(仅能简单传递信息,不涉及更深入操作)的过程. 其中会包括如,阿里云物联网平台 ...
- springboot下mqtt简单使用
概述 mqtt是一个物联网协议. 简单来说它由三大块组成: 服务端(转发消息的server) 生产者(发送消息) 消费者(接收消息) 简单来说就是一个轻量级的收发消息的东西.发消息的人也可以消费消息. ...
- ArduinoUNO+ESP8266实现MQTT简单发布(不烧录ESP8266)
分为以下部分: 1:接线并使用AT指令验证连接 2:使用软串口 3:搭建/配置/测试MQTT服务端 4:在Arduino实现MQTT的PUB客户端 5:总结 接线并使用AT指令验证连接 需要各种线+1 ...
- iOS中MQTT和WS的简单混合使用
历经三天的寻找和尝试,终于完成了一个任务,任务要求的服务器访问用WebSocket的URL格式的,而访问结束后要进行订阅和消息发送,这更多出现在MQTT协议的框架里,例如这个文章 https://ww ...
- android mqtt详解_Android mqtt入门 Android studio(转)
Android mqtt入门 Android studio 2018年04月09日 14:02:30 hbw020 阅读数:1564 分享 mqtt简单使用介绍: 1.as创建工程 2.官网下载mqt ...
- cpp mqtt paho 使用_MQTT--Paho C Client 的实现和详解
概述 在文章Paho - MQTT C Cient的实现中,我介绍了如何使用Paho开源项目创建MQTTClient_pulish客户端.但只是简单的介绍了使用方法,而且客户端的结果与之前介绍的并不吻 ...
- MOTT介绍(2)window安装MQTT服务器和client
MQTT目录: MQTT简单介绍 window安装MQTT服务器和client java模拟MQTT的发布,订阅 window安装MQTT服务器,我这里下载了一个 apache-apollo-1.7. ...
最新文章
- MonkeyRunner 的使用一
- hbase delete.deleteColumns问题
- 【转】计算机中浮点数的表示
- 【NLP】BERT 模型与中文文本分类实践
- oracle的EMCTL
- 详解C#防访问修饰符:public,private,protected,internal
- rk3399_android7.1的HDMI显示实现固定分辨率
- 在Unity进行平台打包发布的时候需要注意的一些细节问题
- php怎么把多个pdf拼接成一个,两张pdf合并成一页 怎么将pdf文件中的页面进行拼接?两页或多页pdf拼接...
- FIR与IIR滤波器
- Camera电路、图像传感器问题汇总
- 网站全国公安机关互联网站安全服务平台备案流程
- 算法交易的机遇和挑战
- 17-[案例1]奇虎导航案例
- (HTML)浏览器将多个空格压缩为一个空格
- css代码实现3D动画翻转 - 鱿鱼游戏卡片制作
- 计算机作业封面,西南交通大学离线作业封面-2016
- 温莎大学的计算机科学,温莎大学 University of Windsor
- Qt应用程序开发九:上传文件
- 关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享