activemq在springboot中的使用(包括websocket)以及源文件

14 篇文章 0 订阅

消费者

public class Consumers implements MessageListener {

    private static final Logger LOGGER = LoggerFactory.getLogger(Consumers.class);

    private static final String BROKER_URL = "failover://tcp://localhost:61616";
    private ConnectionFactory connectionFactory;
    private Connection conn;
    private Session session;
    private Destination dest;
    private MessageConsumer consumer;




    public void creatConn() throws JMSException {

        connectionFactory = new ActiveMQConnectionFactory("admin", "admin", BROKER_URL);
        //创建mq连接
         conn = connectionFactory.createConnection();
        //启动连接
        conn.start();
        //创建会话
        session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    }
    public void connQueue(String SUBJECT) throws JMSException {
        //通过会话创建目标
        dest = session.createQueue(SUBJECT);

        //创建mq消息的消费者
        consumer = session.createConsumer(dest);
        //初始化MessageListener
        Consumers me = new Consumers();

        //给消费者设定监听对象
        consumer.setMessageListener(me);
    }

    public void closeConn()throws JMSException{
        //关闭mq连接
//        consumer.close();
//        session.close();
        conn.close();

        System.out.println("消费者链接关闭" +"======="+conn);
    }

    public void onMessage(Message message) {
        System.out.println(message);
        TextMessage txtMessage = (TextMessage)message;
        try {
            msg=txtMessage.getText();
            JSONObject jsonObject = JSON.parseObject(msg);
            String textMessage = jsonObject.getString("message");
            String from = jsonObject.getString("uname");
            String to = jsonObject.getString("to");
            Map<String, Object> mp1 = new HashMap<>();
            mp1.put("messageType", 4);
            mp1.put("textMessage", textMessage);
            mp1.put("fromUser", from);
            webSocket.sendMessageTo(JSON.toJSONString(mp1), to);
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
    private static WebSocket webSocket= new WebSocket();

    private String msg;

}

生产者

public class Producers {
    private static final Logger LOGGER = LoggerFactory.getLogger(Producers.class);

private static final String BROKER_URL = "failover://tcp://localhost:61616";
    //动态队列SUBJECT

    //初始化连接工厂
    private ConnectionFactory connectionFactory;
    //获得连接
    private Connection conn;
     //创建Session,此方法第一个参数表示会话是否在事务中执行,第二个参数设定会话的应答模式
     private Session session;
    //创建队列
    private Destination dest;
    //通过session可以创建消息的生产者
    private MessageProducer producer;

    public void createConn() throws JMSException {
        connectionFactory = new ActiveMQConnectionFactory("admin", "admin", BROKER_URL);
        conn = connectionFactory.createConnection();
        //启动连接
        conn.start();
        session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    }

    public void closeConn()throws JMSException{
        //关闭mq连接
        conn.close();
    }

    public void createQueue(String SUBJECT) throws JMSException{
        dest = session.createQueue(SUBJECT);
        producer = session.createProducer(dest);
    }

    public void  sendMsg(String msg) throws Exception {
        //初始化一个mq消息
        TextMessage message = session.createTextMessage(msg );
        //发送消息
        producer.send(message);

        LOGGER.debug("send message");
    }
}

源码包链接(websocket+activemq)

https://download.csdn.net/download/Caiabcd/20628919?spm=1001.2014.3001.5503

websocket博文

https://blog.csdn.net/Caiabcd/article/details/118556245

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值