当前位置: 首页 > 知识库问答 >
问题:

用Wildlfy 11嵌入式Apache Artemis接收MQTT消息

戚兴思
2023-03-14

当前状态:

>

  • 我将MQTT协议支持添加到Wildfly embedded Apache Artemis(添加了“Missing”文件夹和Artemis-mqtt-protocol-.jar,并在module.xml中启用了该协议)

    我正在为MTQQ使用完整的独立配置和添加的acceptor:

    <subsystem xmlns="urn:jboss:domain:messaging-activemq:2.0">
      <server name="default">
            <remote-acceptor name="mqtt-acceptor" socket-binding="mqtt">
              <param name="protocols" value="MQTT"/>
            </remote-acceptor>
    
    <jms-topic name="testEndpoint" entries="java:/jms/testEndpoint"/>
    

    AMQ221020:协议[MQTT]在127.0.0.1:1883启动接受器

    AMQ221007:服务器现在是活动的AMQ221001:Apache ActiveMQ Artemis Message Broker版本1.5.5.jbossorg-008

    AMQ221003:部署队列jms.queue.dlq

    AMQ221003:部署队列jms.queue.expiryqueue

    WFLYMSGAMQ0002:将消息传递对象绑定到jndi名称java:jboss/exported/jms/remoteConnectionFactory

    AMQ221052:部署主题jms.topic.TestEndPoint

    
    
        @MessageDriven(
                activationConfig = { @ActivationConfigProperty(propertyName = "destination", 
                                                               propertyValue = "testEndpoint"), 
                                     @ActivationConfigProperty(propertyName = "destinationType", 
                                                               propertyValue = "javax.jms.Topic")
                },
                mappedName = "testEndpoint")
        public class TestEndpoint implements MessageListener {
    
            private static final Logger logger = Logger.getLogger(TestEndpoint.class.getName());
    
            public void onMessage(Message message) {
                try {
                    logger.debug("message: " + message.getClass().getName());
                } catch (Exception e) {
                    logger.debug("exception: " + e.getMessage());
                }
            }
    
        }
    
    
  • 共有1个答案

    殳勇
    2023-03-14

    日志是这样说的:

    AMQ221052:部署主题jms.topic.TestEndPoint

    它还说:

     类似资料:
    • null 有人帮忙吗? 谢谢,拉胡尔

    • null 但是,我发现代理在重新连接时不会向客户机发送任何东西。 这就是我如何测试的:使用上面提到的四个参数将客户机连接到代理。用QOS=1订阅感兴趣的主题断开客户端 使用另一个客户端程序和另一个客户端id,连接到代理将消息发布到由现在脱机的客户端订阅的同一主题。请等待几秒钟,现在使用与以前相同的连接设置重新连接脱机客户端。

    • 我试图让一些基于PAHO的客户机使用Vert.x MQTT服务器。我试图发布到我的接收客户端订阅的测试主题。我很难从客户端发布者向客户端订阅者发送消息。 使用我在Internet上看到的真实例子,我构建了一个MQTT代理。vert.x MQTT代理代码的代码如下所示: 我很确定我在这里错过了什么,但我想不出会是什么。有人能帮我把这个弄好吗??? 提前感谢您的任何帮助或见解。

    • mosquitto.conf将最大飞行消息设置为0,持久性为true。 发布服务器QOS=2 用户QOS=2 保持活力=60 还有其他参数我应该看吗?

    • 主要内容:1 Broker处理请求入口,1.1 registerProcessor注册消息处理器,1.2 NettyServerHandler处理请求,1.3 processRequestCommand分发处理请求,2 asyncProcessRequest异步处理请求,2.1 asyncProcessRequest异步处理请求,3 总结基于RocketMQ release-4.9.3,深入的介绍了Broker接收消息源码入口。 此前我们学习了RocketMQ的Producer发送消息的源码,首

    • 我正在使用Mosquitto(现在是Paho)python MQTT客户机连接到HiveMQ代理。代码是非常基本的,摘自他们的文档--https://pypi.python.org/pypi/paho-MQTT 这里的QoS也是2。 QoS的这种修改导致订户只接收到20条消息。经过进一步探讨,我意识到问题可能是由于,这是一个选项函数,它设置了QoS>0的消息的最大数量,这些消息可以同时通过网络流的