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.
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"}); |
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:
<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> |
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.