Mule MQTT组件使用(Anypoint studio)

@[TOC](Mule MQTT节点使用(Anypoint studio))

MQTT介绍

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。

其他MQTT的相关特点这里就不再赘述了,网上都有。

工程架构

在项目中,我是以rabbitMQ通过添加MQTT服务的方式作为MQTT服务端;客户端工具是用的MQTT.fx;mule MQTT也是作为客户端
MQTT数据流程图
下面我就分三部分(MQTT服务端,MQTT.fx,mule MQTT)来介绍一下各个部分相应配置

MQTT服务端

可以参照https://jingyan.baidu.com/article/e4d08ffd9ec61c0fd2f60d1f.html这个链接基于RabbitMQ安装MQTT插件
安装完成之后可以在浏览器上打开http://localhost:15672来查看RabbitMQ的管理界面,MQTT服务端是否连接上来也可以在该面板的Queues目录下查看到。

MQTT.fx

这里我是使用的MQTT.fx客户端,你也可以使用其他的,MQTT.fx的下载以及安装就不再介绍了,直接上相关配置参数图:

打开该软件主界面的设置:
在这里插入图片描述
注意图中的圈出的参数,如果在安装mqtt插件的时候没有修改相应端口就可以不用改默认的参数。

点击connect,如果右边出现绿点则表示已经链接到MQTT服务端了
在这里插入图片描述
输入主题名称,可以随便输入,然后点击Subscribe
在这里插入图片描述
此时就可以在RabbitMQ管理平台看到相应的信息
在这里插入图片描述
接下来可以在MQTT.fx客户端验证一下MQTT服务器是否正常运行,点击publish,在下半部的文本框输入任何信息,需要注意的是主题设置要与之前的subscribe的主题要一致,然后点击publish就可以在subscribe界面看到接受的消息
在这里插入图片描述
在这里插入图片描述

mule MQTT

mule MQTT客户端也可以分为两种情况,一种是作为发送方,另一种是作为接收方

作为发送方

我的项目整体节点组件如下:
在这里插入图片描述
HTTP组件配置:
在这里插入图片描述
在这里插入图片描述
MQTT组件配置:(注意主题要与MQTT.fx订阅的主题一致)
在这里插入图片描述
在这里插入图片描述
另外两个Java组件是对数据进行处理,代码分别如下

package mqtt_test;

import org.mule.api.MuleMessage;
import org.mule.api.transformer.TransformerException;
import org.mule.transformer.AbstractMessageTransformer;

public class mqttTrans extends AbstractMessageTransformer{

	@Override
	public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
		String msg = "";
		try {
			msg=message.getPayloadAsString();
			System.out.println("message.getPayloadAsString()=================="+msg);
			return msg;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

}
package mqtt_test;

import org.mule.api.MuleMessage;
import org.mule.api.transformer.TransformerException;
import org.mule.transformer.AbstractMessageTransformer;

public class mqttReturnTrans extends AbstractMessageTransformer{

	@Override
	public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
		String returnMsg = "";
		try {
			
			returnMsg = message.getPayloadAsString();
			System.out.println("returnMsg=================="+returnMsg);
			if(null != returnMsg){
				return "{'status':'ok'}";
			}
			return "{'status':'fail'}";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;
	}

}

最后运行项目,然后通过SOAPUI测试:
在这里插入图片描述
然后可以在MQTT.fx客户端接收到信息:
在这里插入图片描述

作为接收方

我的项目整体节点组件如下:
在这里插入图片描述
MQTT组件配置:(注意主题要与MQTT.fx订阅的主题一致)
在这里插入图片描述
在这里插入图片描述
Java组件代码:

package mqtt_subscribe;

import org.mule.api.MuleMessage;
import org.mule.api.transformer.TransformerException;
import org.mule.transformer.AbstractMessageTransformer;

public class subscribeTrans extends AbstractMessageTransformer{

	@Override
	public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
		String msg = "";
		try {
			msg = message.getPayloadAsString();
			System.out.println("returnMsg=================="+msg);
			return msg;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "{'status':'failed'}";
	}

}

最后两个组件可以根据自己需要设置相应输出

可以在rabbitMQ管理平台看到多了一个连接
在这里插入图片描述
最后的运行效果如下:

在MQTT.fx客户端Publish界面输入要发送的内容,点击发送可以在mule客户端看到接受到的信息
在这里插入图片描述
在mule工具的Console面板下可以看到:
在这里插入图片描述
至此,mule MQTT组件的基本使用就介绍到这里,后续有什么新的发现与应用再会!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值