Servicio de mensajería web

Publicación de mensajes en el servicio de mensajería web

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.

Publicación de cliente de navegador

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

true
en 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"}); 

Publicación mediante una aplicación Web

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:

  1. Cree una fábrica de conexiones de tema para conectarse con el bus de integración de servicios. Anote el nombre JNDI (Java Naming and Directory Interface) de la fábrica de conexiones de tema.
  2. Cree una referencia a PublisherServlet y pase el nombre JNDI de la fábrica de conexiones. Consulte el ejemplo siguiente:
     <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>  
  3. Obtenga una instancia de Publisher, cree un mensaje Web y publique. Consulte el ejemplo siguiente:
     
     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.


Condiciones de uso | Comentarios