Web-Messaging-Service

Nachrichten über den Web-Messaging-Service veröffentlichen

Wenn eine Anwendung für die Nutzung des Web-Messaging-Service konfiguriert ist, können Informationen für Browserclients auf verschiedene Weise veröffentlicht werden. Dieser Abschnitt beschäftigt sich mit dem Veröffentlichen auf Browserclients oder über eine Webanwendung.

Veröffentlichen auf Browserclients

Die erste Methode sind Clientveröffentlichungen über den Browser. Die Veröffentlichung erfolgt im Rahmen des Bayeux-Protokolls. Beim Veröffentlichen mit Hilfe eines Browsers wird eine andere Art von Webanwendung aktiviert. Beispiele hierfür sind das Einbetten von Chat und eigenem Auftritt in eine Webseite, eine interaktive Anwendung für Webbearbeitung oder eine Spielanwendung. Für Clientveröffentlichungen muss die Option "clientCanPublish" der Web-Messaging-Konfigurationsdatei auf "true" gesetzt werden. Der innerhalb des Browsers zu veröffentlichende Code ähnelt dem im folgenden cometd-Clientbeispiel aus Dojo Toolkit:



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

Veröffentlichung über eine Webanwendung

Die zweite Methode ist die Bereitstellung von Veröffentlichungen für Web-Messaging-Clients über eine Java-EE-Anwendung (JavaTM 2 Platform, Enterprise Edition). Der Web-Messaging-Service bildet zwischen Clients und dem Service Integration Bus eine Brücke für die Veröffentlichung und Übermittlung von Nachrichten. Nachrichten, die an Webclients gesendet werden müssen, müssen über einen Service Integration Bus weitergeleitet werden. Es sollten J2EE-Standardmethoden für SIB-Veröffentlichungen verwendet werden. Dies ist in einer Enterprise-Bean oder einem Servlet möglich. Weitere Informationen hierzu enthält der Abschnitt SIB-Veröffentlichung.

Zur Unterstützung von Veröffentlichungen für Web-Messaging-Clients wird in der Dienstprogrammbibliothek der Web-Messaging-Anwendung eine Publishing-API bereitgestellt. Für einen Web-Messaging-Client bestimmte Veröffentlichungen mit Hilfe der Publishing-API sind einfacher als Veröffentlichungen unter Verwendung der JMS-Standardmethoden für Veröffentlichungen. Zu den Vereinfachungen gehören die Zuordnung von Bayeux-Kanälen zu SIB-Topics sowie die unkomplizierte Identifikation unterstützter JMS-Nachrichtentypen. Wenn Sie die Publishing-API verwenden, gehen Sie wie folgt vor:

  1. Erstellen Sie eine Topicverbindungsfactory für die Verbindung zum Service Integration Bus. Notieren Sie den JNDI-Namen (Java Naming and Directory Interface) für die Topicverbindungsfactory.
  2. Erstellen Sie einen Verweis auf PublisherServlet, und übergeben Sie den JNDI-Namen für die Verbindungsfactory. Sehen Sie sich das folgende Beispiel an:
     <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. Rufen Sie eine Instanz von Publisher ab, erstellen Sie eine Webnachricht, und veröffentlichen Sie diese. Sehen Sie sich das folgende Beispiel an:
     
     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());
     }      

Ein Beispiel für die Verwendung der Publishing-API ist die Anwendung Quote Streamer. In der Dokumentation zur Publishing-API können Sie sich über die Web-Messaging-Publishing-API informieren.


Nutzungsbedingungen | Feedback