C#整合ActiveMQ与SpringBoot整合ActiveMQ数据间交互
一、SpringBoot整合AvtiveMQ部分
1.引入ActiveMQ依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
2.在application中加入配置参数,放在spring配置下
activemq:
broker-url: tcp://127.0.0.1:61616
user: admin
password: admin
in-memory: false
packages:
trust-all: true
pool:
max-connections: 10
enabled: false
idle-timeout: 30000
jms:
pub-sub-domain: true
3.创建topic
package com.mengxiangnongfu.smart_party_school.framework.configure; import org.apache.activemq.command.ActiveMQTopic;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.stereotype.Component; import javax.jms.Topic; /**
* @author Yang
* @version 1.0
* @date 2022/6/23 13:51
*/
@Component
@EnableJms
public class ActiveMqTopicConfig { /**
* 照明的topic
* @return
*/
@Bean(name = "lighting")
public Topic lig() {
return new ActiveMQTopic("lighting-topic");
} }
4.发送数据
@Autowired
@Qualifier(value = "lighting") //注入配置topice的bean 因为可能配置多个topice的bean所以加入 @Qualifier指定name
private Topic lighting;
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate; @Autowired
@Qualifier(value = "lighting")
private Topic lighting; @Release
@GetMapping("/active-mq/send")
public AjaxResult activeMqSend() {
log.debug("【debug】.......");
jmsMessagingTemplate.convertAndSend(lighting, "F1 F2 F3 F4 F4");
return AjaxResult.success();
}
二、C#整合ActiveMQ
1.通过NuGet引入Active依赖
2.建立与activemq的通讯,建议用多线程,在新建的线程中做
public void Receive()
{
try
{
//创建连接池
IConnectionFactory factory = new ConnectionFactory("tcp://127.0.0.1:61616/");
IConnection connection = factory.CreateConnection();
connection.ClientId = SystemConstants.LIGHTING_CLIENT_NAME;
connection.Start(); ISession session = connection.CreateSession(); //创建Consumer
IMessageConsumer consumer = session.CreateDurableConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("lighting-topic"), "Consumer1", null, false);
consumer.Listener += new MessageListener(consumer_Listener); /* connection.Stop();
connection.Close();*/
}
catch (System.Exception e)
{
rtx_result.Text += e.Message;
}
}
void consumer_Listener(IMessage message)
{
try
{
ITextMessage msg = (ITextMessage)message;
//Invoke(new DelegateRevMessage(RevMessage), msg);
rtx_result.Text = rtx_result.Text + msg.Text+"\n";
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
}
public delegate void DelegateRevMessage(ITextMessage message);
public void RevMessage(ITextMessage message)
{
rtx_result.Text += string.Format(@"接收到:{0}{1}", message.Text, Environment.NewLine);
}
最新文章
- PHP-CS-Fixer:格式化你的PHP代码
- struts2 配置 struts.xml 提示
- HDU 5795:A Simple Nim(博弈)
- 关于C++与Java中虚函数问题的读书笔记
- Spark:Master High Availability(HA)高可用配置的2种实现
- noip 2015 运输计划 (lca+二分)
- C#代码计时
- 程序集和反射(C#)
- 1)Java学习笔记:接口和抽象类的异同
- Linux services, runlevels, and rc.d scripts
- 使用Restify+superagent做数据转发
- parted分区和挂载及非交互式操作
- python爬虫遇到https站点InsecureRequestWarning警告解决方案
- vuejs自定义过滤器根据搜索框输入的值,筛选复杂的列表数据
- The value of ESP was not properly saved across a function call 快速解决
- vs2013+qt5.3.2+pcl1.8.0+osg2.3开发环境配置
- java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean
- Quartz.NET 入门,带C#实例
- 从零开始一起学习SLAM | 相机成像模型
- Pandas读取文件
热门文章
- 推荐一款在浏览器编辑`Blazor`的`IDE`
- @ControllerAdvice解密请求,加密响应
- 插入排序(CSP-J 2021 T2)我有新思路了,链接:https://www.cnblogs.com/wjk53233/p/16533752.html
- JWT拦截器与跨域问题
- 编写antd的Cascader 级联选择组件市级地区数据
- zookeeper04---ZAB协议
- Linux07-常用命令-权限
- 安装和配置Maven项目管理工具
- SpringBoot整合Mybatis、SpringBoot整合Spring Data JPA
- 原生微信小程序的一些注意点