Web 傳訊 服務

將訊息發佈到 Web 傳訊服務

當配置應用程式來使用 Web 傳訊服務時,可以利用多種方法,將訊息發佈到瀏覽器用戶端。 這個主題討論瀏覽器用戶端發佈及透過 Web 應用程式發佈。

瀏覽器用戶端發佈

第一個方法是透過瀏覽器來進行的用戶端發佈。 發佈是 Bayeux 通訊協定的一部分。 從瀏覽器發佈,會啟用另一種樣式的 Web 應用程式。 範例可包括網頁的內嵌會談和顯示狀態、協同運作的 Web 編輯應用程式,或遊戲應用程式。 在 Web 傳訊配置檔中,clientCanPublish 選項必須設為

true
,用戶端才能夠發佈。在瀏覽器內發佈的程式碼,類似於下列 Dojo Toolkit cometd 用戶端範例:

dojox.cometd.publish("/testtopic", { test: "data"});

透過 Web 應用程式發佈

第二個方法是透過 JavaTM Platform Enterprise Edition (Java EE) 應用程式來發佈到 Web 傳訊用戶端。 Web 傳訊服務會將用戶端橋接到服務整合匯流排,以進行訊息的發佈和遞送。 需要傳到 Web 用戶端的訊息,必須透過服務整合匯流排來遞送。 您應該使用標準 J2EE 服務整合匯流排發佈方法。 在 Enterprise Bean 或 Servlet 中,可以使用這些標準方法。 請參閱服務整合匯流排發佈一節,以取得相關資訊。

為了協助發佈到 Web 傳訊用戶端,Web 傳訊應用程式公用程式庫提供了一個發佈 API。 與標準 JMS 發佈方法相反,當使用發佈 API 時,會將發佈至 Web 傳訊用戶端簡化。 這些簡化包括 Bayeux 通道至服務的整合主題對映,以及能夠輕鬆識別支援的 JMS 訊息類型。 當使用發佈 API 時,請使用下列步驟:

  1. 建立 Topic Connection Factory 來連接服務整合匯流排。 請記下 Topic Connection Factory 的「Java 命名和目錄介面 (JNDI)」名稱。
  2. 建立一個 PublisherServlet 參照,傳入 JNDI 名稱,以用於 Connection Factory。 請參閱下列範例:
     <servlet>
        <display-name>Publisher</display-name>
        <servlet-name>Publisher</servlet-name>
        <servlet-class>
            com.ibm.websphere.webmsg.publisher.jndijms.JmsPublisherServlet
        </servlet-class>
        <init-param>
             <param-name>CONNECTION_FACTORY_JNDI_NAME</param-name>
             <param-value>java:comp/env/jms/QuotePublish</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>  
  3. 取得 Publisher 的實例,建立一個 Web 訊息,然後發佈。 請參閱下列範例:
     
     Publisher publisher = (Publisher)servletContext.getAttribute(JmsPublisherServlet.PUBLISHER_SERVLET_CONTEXT_KEY);
     if (publisher == null) {   
                throw new ServletException("Publisher servlet not initialized, or not initialized before app");
     }
     try {
         publisher.publish(new BayeuxJmsTextMsg(s.getTopic(), data));
     }
     catch (PublisherException e){
         logger.log(Level.WARNING, "Error publishing simulated data.  Msg: " + e.toString());
     }      

如需「發佈 API」的用法範例,請參閱 QuoteStreamer 應用程式。 請閱讀發佈 API 文件,以瞭解 Web 傳訊發佈 API。


使用條款 | 意見