Atmosfera / conversa bidirecional de Jersey

Eu vi vários exemplos de Atmosphere, incluindo pub-sub. Eu quero fazer algo como pub-sub (cliente assina um canal que é exclusivo para esse cliente; o servidor publica periodicamente para esse canal), exceto que o cliente enviará dados para o servidor também. O cliente enviará dados em resposta aos dados enviados pelo servidor e, em outros casos, quando algo importante acontecer no cliente que o servidor precisa conhecer (que o servidor não precisa reconhecer).

É possível fazer isso com o Atmosphere?

Pode parecer algo assim:

@Stateless @Path("/id/{clientId}/key/{clientKey}") public class MyService { @POST @Produces("application/xml") @Consumes("application/xml") @Suspend public StreamingOutput subscribe(@PathParam("clientId") String clientId, @PathParam("clientKey") String clientKey, @Context Broadcaster broadcaster, InputStream body) { if (!authenticate(clientId, clientKey) { throw new WebApplicationException(401); } broadcaster.setID(clientId); // Do something here... Not sure what } } 

Mas há alguns problemas aqui:

  1. A conexão de input será suspensa, por isso não será capaz de enviar qualquer coisa para o servidor, exceto quando for retomada via transmissão;
  2. Qualquer uso do InputStream resultará no bloqueio de E / S, o que acaba com o propósito de usar o Atmosphere.

Ambos os problemas podem ser resolvidos simplesmente removendo @Suspend , mas depois estou na situação de thread por conexão.

Eu tenho a impressão de que o Atmosphere não será a tecnologia apropriada aqui e talvez eu tenha que fazer algo um pouco mais baixo. Mas não tenho certeza de como fazer isso. Idéias?

Editar:

Não consigo encontrar uma maneira simples de analisar o XML de forma assíncrona, então, tudo isso parece menos com algo que pode ser feito de forma assíncrona.

Salut,

Basta transmitir um Callable para executar sua análise XML assíncrona. Dê uma olhada neste exemplo:

Feed do Twitter

Deixe-me saber como vai ser (aqui ou no atmosphere-framework@googlegroups.com)

obrigado

– Jeanfrancois

Intereting Posts