Service de messagerie Web

Publication de messages au service de messagerie Web

Lorsqu'une application est configurée pour l'utilisation du service de messagerie Web, il existe différentes manières de publier les informations vers les clients du navigateur. Cette rubrique aborde la publication vers le client du navigateur ainsi que la publication à travers une application Web.

Publication vers le client du navigateur

La première méthode consiste à la publication vers le client via le navigateur. La publication fait partie du protocole Bayeux. La publication à partir du navigateur présente un autre aspect d'application Web. A titre d'exemples, nous pouvons citer le système de chat ainsi que la présence dans une page Web, une application d'édition Web collective ou encore une application relative au jeu. L'option clientCanPublish doit être définie en tant que

true
dans le fichier de configuration de messagerie Web afin de permettre la publication vers le client. Le code de publication à l'aide du navigateur est similaire à l'exemple Toolkit Dojo cometd client suivant :

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

Publication via une application Web

La deuxième méthode consiste en la publication vers les clients de la messagerie Web via une application J2EE (JavaTM Platform, Enterprise Edition) Le service de messagerie Web connecte les clients au bus d'intégration de services pour la publication et la livraison des messages. Les messages à envoyer aux clients du Web doivent être acheminés via un bus d'intégration de services. Il est recommandé de mettre en pratique les méthodes standard de publication via un bus d'intégration de services J2EE. Ces méthodes standard peuvent être utilisées dans une entreprise bean ou servlet. Reportez-vous à la section relative à la publication du bus d'intégration de services pour plus d'informations.

Afin de faciliter la publication vers les clients de la messagerie Web, une API de publication est fournie dans la bibliothèque relative à l'utilitaire d'application de la messagerie Web. La publication vers un client de la messagerie Web est simplifiée grâce à l'utilisation de l'API de publication, contrairement aux méthodes standard de publication JMS. Ces simplifications incluent le mappage de la rubrique relative à l'intégration de Bayeux channel-to-service. Elles contiennent également une simple identification des types de message pris en charge par JMS. Procédez aux étapes suivantes lorsque vous utilisez l'API de publication :

  1. Créer une fabrique de connexion de rubriques pour se connecter au bus d'intégration de services. Prenez note du nom de JNDI (Java Naming and Directory Interface) relatif à la fabrique de connexion de rubriques.
  2. Créer une référence à PublisherServlet et entrer le nom JNDI dans la fabrique de connexion. Examinez l'exemple suivant :
     <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. Obtenir une instance du diffuseur de publication, créer un message Web et publier. Examinez l'exemple suivant :
     
     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());
     }      

Afin d'illustrer l'API de publication, reportez-vous à l'application Quote Streamer. Lisez la documentation relative à l'API de publication pour l'utilisation de l'API de publication de messagerie Web.


Conditions d'utilisation | Commentaires