ZBus消息中间件和WebSocket的联合使用

本文介绍了如何在项目中结合ZBus消息中间件和WebSocket技术,通过ZBusconfig.java实现ZBus的启动、消息生产和回调处理,同时展示了WebSocketStompConfig.java中WebSocket的配置过程。
摘要由CSDN通过智能技术生成

1、ZBusconfig.java, zbus的启动、生产、回调处理消息的方法。

package com.accenture.icc.zbus.config;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.messaging.simp.SimpMessageSendingOperations;
import org.zbus.broker.Broker;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Consumer;
import org.zbus.mq.Consumer.ConsumerHandler;
import org.zbus.mq.MqAdmin;
import org.zbus.mq.Producer;
import org.zbus.net.http.Message;

import com.accenture.icc.pojo.AnalogInputData;
import com.accenture.icc.pojo.DataUnit;
import com.accenture.icc.pojo.TripleDataWrapper;

@Configuration
@PropertySource("classpath:data.properties")
public class ZbusConfig {	
	private static final Logger logger = LoggerFactory.getLogger(ZbusConfig.class);
	
	@Value("${zbus.mq.sub}")
	private String subMq;
	
	@Value("${zbus.mq.recv}")
	private String recvMq;
	
	@Value("${zbus.mq.alarm}")
	private String alarmMq;
	
	@Value("${zbus.mq.subCommonData}")
	private String subIndexDataMq;
	
	@Value("${zbus.mq.recvCommonData}")
	private String indexDataMq;
	
	@Value("${csv.power.maxsize}")
	private int powerMaxListSize;
	@Value("${csv.power.period}")
	private int powerPeriod;
	
	@Value("${csv.consumption.maxsize}")
	private int consumptionMaxListSize;
	@Value("${csv.consumption.period}")
	private int consumptionPeriod;
	
	@Autowired
	private TripleDataWrapper powerWrapper;
	@Autowired
	private TripleDataWrapper consumptionWrapper;
	@Autowired
	private TripleDataWrapper transformerWrapper;
	@Autowired
	private TripleDataWrapper powerFactorWrapper;
	@Autowired
	private TripleDataWrapper unbalanceWrapper;
	@Autowired
	private TripleDataWrapper stationParamWrapper;

	/**
	 * 回调函数
	 * @param messaging
	 * @return
	 */
	@Bean
	public ConsumerHandler consumerHandler(SimpMessageSendingOperations messaging) {		
		ConsumerHandler consumerHandler = new ConsumerHandler() {
			@Override
			public void handle(Message msg, Consumer consumer) throws IOException {
				logger.info("RECEIVING MESSAGE: {}", msg.getBodyString());
				String[] fields = msg.getBodyString().split(",");
				if(fields.length < 5){
					return;
				}
				String tag = fields[0];
				int tableId = 0;
				int recordId = 0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值