使用ActimeMQ和Spring Consumer

时间:2015-11-02 07:49:36

标签: java spring activemq mqtt spring-jms

我是mqtt的新手。我正在启动一个ActiveMQ服务器并创建一个Java Spring Consumer来处理请求。我正在从终端成功发布文本消息并使用spring consumer进行处理。接下来,我需要通过mqtt发送一个图像文件。我有一些问题:

  1. 是否可以使用mqtt发送图像文件?
  2. 如何使用我的Spring Consumer接收文件?
  3. 这是我用于消费mqtt短信的java代码:

    public void onMessage(Message message) {
    
        if (message instanceof BytesMessage) {
            BytesMessage bm = (BytesMessage) message;
            byte data[];
            data = new byte[(int) bm.getBodyLength()];
            bm.readBytes(data);
            String msgText = new String(data);
        }
    }
    

    这是我发送文件的代码:

    mosquitto_pub   -d -t test -f /home/abdulmanaf/Pictures/1.png
    

1 个答案:

答案 0 :(得分:0)

发送文件的代码:

mosquitto_pub   -d -t test -f /home/abdulmanaf/Pictures/1.png

用于接收文件的Spring Consumer代码:

if (message instanceof BytesMessage) {
            try {
                BytesMessage bm = (BytesMessage) message;
                byte data[];
                data = new byte[(int) bm.getBodyLength()];
                bm.readBytes(data);

                FileOutputStream fileOuputStream = new FileOutputStream(
                        "/tmp/hello.png");
                fileOuputStream.write(data);
                fileOuputStream.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            }

        }