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