Cuando se configura una aplicación para utilizar el servicio de mensajería web, hay
varias formas de publicar información en los clientes de navegador. En este tema se
describen la publicación de cliente de navegador y la publicación mediante una aplicación
Web.
El primer método es la publicación de cliente mediante el navegador. La publicación forma parte del protocolo Bayeux. La publicación desde el navegador habilita un estilo diferente de aplicación Web. Por ejemplo, la conversación incorporada y la presencia en una página Web, una aplicación de edición Web colaborativa o una aplicación de juegos. La opción clientCanPublish debe establecerse en
trueen el archivo de configuración de mensajería web para permitir la publicación de cliente. El código para publicar en el navegador es parecido al siguiente ejemplo de cliente cometd de Dojo Toolkit:
dojox.cometd.publish("/testtopic", { test: "data"}); |
El segundo método es la publicación en clientes de mensajería web mediante una aplicación Java EE (JavaTM Platform, Enterprise Edition). El servicio de mensajería web hace de puente entre los clientes y el bus de integración de servicios para la entrega y publicación de mensajes. Los mensajes que es necesario enviar a clientes Web deben direccionarse a través de un bus de integración de servicios. Deben utilizarse los métodos estándares de publicación de bus de integración de servicios J2EE. Estos métodos estándar pueden utilizarse en un enterprise bean o un servlet. Consulte la sección sobre publicación de bus de integración de servicios para obtener más información.
Como ayuda para la publicación en clientes de mensajería web, se proporciona una API de publicación en la biblioteca de programa de utilidad de aplicaciones de mensajería web. La publicación en un cliente de mensajería web se simplifica cuando se utiliza la API de publicación en lugar de los métodos de publicación JMS estándar. Estas simplificaciones incluyen la correlación de temas de integración de canal con servicio de Bayeux y la identificación sencilla de los tipos de mensajes JMS soportados. Siga estos pasos cuando utilice la API de publicación:
<servlet> <display-name>Publisher</display-name> <servlet-name>Publisher</servlet-name> <clase-servlet> 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("El servlet de Publisher no se ha inicializado o no se ha inicializado antes de la aplicación"); } try { publisher.publish(new BayeuxJmsTextMsg(s.getTopic(), data)); } catch (PublisherException e){ logger.log(Level.WARNING, "Error al publicar los datos simulados. Msg: " + e.toString()); } |
Para ver un uso de ejemplo de la API de publicación, consulte la aplicación QuoteStreamer. Consulte la Documentación de la API de publicación para ver la API de publicación de mensajería web.