Serviço do Sistema de Mensagens da Web

Publicando Mensagens no Serviço do Sistema de Mensagens da Web

Quando um aplicativo está configurado para utilizar o serviço de sistema de mensagens da Web, há várias maneiras de publicar informações para clientes do navegador. A publicação do cliente do navegador e a publicação através do aplicativo da Web são discutidas neste tópico.

Publicação do Cliente do Navegador

O primeiro método é a publicação do cliente através do navegador. A publicação é parte do protocolo Bayeux. A publicação do navegador ativa um estilo diferente do aplicativo da Web. Alguns exemplos podem estar incorporando chat e presença em uma página da Web, um aplicativo de edição da Web colaborativo ou aplicativo de jogos. A opção clientCanPublish deve ser configurada como

verdadeiro
no arquivo de configuração de sistema de mensagens da Web para permitir a publicação do cliente. O código para publicar dentro do navegador é semelhante ao seguinte exemplo de cliente do cometd do kit de ferramentas do Dojo:

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

Publicando através de um Aplicativo da Web

O segundo método é publicar nos clientes de sistema de mensagens da Web através de um aplicativo JavaTM Platform, Enterprise Edition (Java EE). O serviço do sistema de mensagens da Web conecta os clientes ao barramento de integração de serviços para a publicação e entrega de mensagens. Mensagens que precisam ser enviadas a clientes da Web devem ser roteadas por meio de um barramento de integração de serviços. Métodos de publicação do barramento de integração de serviços J2EE padrão devem ser utilizados. Esses métodos padrão podem ser utilizados em um enterprise bean ou servlet. Consulte o tópico Publicação de barramento de integração de serviços para obter informações adicionais.

Para ajudar na publicação dos clientes do sistema de mensagens da Web, uma API de publicação é fornecida na biblioteca do utilitário do aplicativo do sistema de mensagens da Web. Publicar em um cliente do sistema de mensagens da Web é simplificado ao utilizar a API de publicação como oposta a métodos de publicação do JMS padrão. Essas simplificações incluem mapeamento de tópico de integração de canal para serviço do Bayeux e fácil identificação de tipos de mensagem do JMS suportados. Utilize as seguintes etapas ao utilizar a API de publicação:

  1. Crie uma connection factory de tópico para conectar-se a um barramento de integração de serviços. Observe o nome de JNDI (Java Naming and Directory Interface) para a connection factory de tópico.
  2. Crie uma referência ao PublisherServlet e transmita o nome de JNDI nela para a connection factory. Consulte o exemplo a seguir:
     <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. Obtenha a instância do Publicador, crie uma mensagem da Web e publique. Consulte o exemplo a seguir:
     
     Publisher publisher = (Publisher)servletContext.getAttribute(JmsPublisherServlet.PUBLISHER_SERVLET_CONTEXT_KEY);
     if (publisher == null) {
                throw new ServletException("Servlet do publicador não inicializado, ou não inicializado antes de app");
     }
     try {
         publisher.publish(new BayeuxJmsTextMsg(s.getTopic(), data));
     }
     catch (PublisherException e){
         logger.log(Level.WARNING, "Erro ao publicar dados simulados.  Msg: " + e.toString());
     }      

Para uso de exemplo da API de Publicação, consulte o aplicativo QuoteStreamer. Leia a documentação da API de Publicação para obter a API de publicação do sistema de mensagens da Web.


Termos de Uso | Feedback