<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # JMS 發布/訂閱消息示例 > 原文: [https://howtodoinjava.com/jms/jms-publish-subscribe-message-example/](https://howtodoinjava.com/jms/jms-publish-subscribe-message-example/) 在 [JMS 教程](//howtodoinjava.com/jms/jms-java-message-service-tutorial/)中,您將了解有關 JMS 消息傳遞域“點對點域”和“發布訂閱域”的信息。 在此示例中,我們將通過**發布/訂閱消息傳遞域**這樣的示例。 發布/訂閱消息傳遞域是**一對多模型**,其中一個發布者通過`topic`向所有活動的訂閱者發送消息,并且他們通過主題接收消息。 ![Publish Subscribe JMS Messaging](https://img.kancloud.cn/2c/ef/2cefa960a95893c306d683274379ca19_402x164.png) 發布訂閱 JMS 消息傳遞 ## 發布/訂閱消息發布者應用流程 下面給出了發送方應用的典型發布/訂閱消息傳遞示例。 該應用的以下步驟是: 1. 首先,我們將獲取 JMS 服務器的`InitialContext`對象。 2. 之后,使用初始上下文對象查找主題對象。 3. 同樣,我們將使用初始上下文對象查找主題連接工廠。 4. 然后,使用主題連接工廠來創建主題連接,因為它表示 JMS 服務器的物理連接。 5. 創建主題連接工廠后,我們將創建主題會話,在該會話中,第一個參數將決定該會話是否被處理。 但是,我們將使用非事務會話,而第二個參數確定傳遞模式。 6. 之后,我們將為主題對象創建一個主題發布者,然后創建一條消息。 7. 然后將諸如“`Hello`”之類的消息發送到主題對象。 8. 關閉主題連接后,關閉主題連接后,它將自動關閉會話和主題發布者。 讓我們看下面的例子: ```java package pubSub; import javax.naming.InitialContext; import javax.jms.Topic; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.TopicPublisher; import javax.jms.DeliveryMode; import javax.jms.TopicSession; import javax.jms.TopicConnection; import javax.jms.TopicConnectionFactory; public class Publisher { public static void main(String[] args) throws Exception { // get the initial context InitialContext ctx = new InitialContext(); // lookup the topic object Topic topic = (Topic) ctx.lookup("topic/topic0"); // lookup the topic connection factory TopicConnectionFactory connFactory = (TopicConnectionFactory) ctx. lookup("topic/connectionFactory"); // create a topic connection TopicConnection topicConn = connFactory.createTopicConnection(); // create a topic session TopicSession topicSession = topicConn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); // create a topic publisher TopicPublisher topicPublisher = topicSession.createPublisher(topic); topicPublisher.setDeliveryMode(DeliveryMode.NON_PERSISTENT); // create the "Hello World" message TextMessage message = topicSession.createTextMessage(); message.setText("Hello World"); // publish the messages topicPublisher.publish(message); // print what we did System.out.println("Message published: " + message.getText()); // close the topic connection topicConn.close(); } } ``` ## 發布/訂閱消息訂閱者應用流程 接收方的大多數步驟與發送方應用相同 – 除了它將監聽消息而不是發送 JMS 消息外。 ```java package pubSub; import javax.naming.InitialContext; import javax.jms.Topic; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.TopicSession; import javax.jms.TopicSubscriber; import javax.jms.TopicConnection; import javax.jms.TopicConnectionFactory; public class Subscriber { public static void main(String[] args) throws Exception { // get the initial context InitialContext ctx = new InitialContext(); // lookup the topic object Topic topic = (Topic) ctx.lookup("topic/topic0"); // lookup the topic connection factory TopicConnectionFactory connFactory = (TopicConnectionFactory) ctx. lookup("topic/connectionFactory"); // create a topic connection TopicConnection topicConn = connFactory.createTopicConnection(); // create a topic session TopicSession topicSession = topicConn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); // create a topic subscriber TopicSubscriber topicSubscriber = topicSession.createSubscriber(topic); // start the connection topicConn.start(); // receive the message TextMessage message = (TextMessage) topicSubscriber.receive(); // print the message System.out.println("Message received: " + message.getText()); // close the topic connection topicConn.close(); } } ``` 在上面的代碼中,接收方將接收來自發送方的消息并進行打印,即 HelloWorld。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看