我看到了一些大气例子,包括公共-次。 我想做一些事情,例如出版商(客户订阅该客户独有的渠道;服务器定期出版该频道),但客户也将向服务器发送数据。 客户将根据服务器发送的数据发送数据,在其他情况下,当服务器需要了解(服务器不需要承认)客户的情况发生重大事件时。
甚至有可能在大气中做到这一点?
它不妨研究这样的问题:
@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
}
}
但这里存在几个问题:
- The incoming connection will suspend, so it won t be able to send anything to the server except when resumed via broadcast;
- Any usage of the
InputStream
will result in blocking I/O, which kind of defeats the purpose of using Atmosphere.
这些问题都可以通过删除<条码>@Suspend来解决,但随后,在现成的连接状态下,可以解决。
我感到,电离层不会成为这方面的适当技术,而我可能不得不做的只是略微低的。 但我不相信如何去做。 设想?
<><>Edit>:
我可以找到一条直截了当的教 parXML的做法,这样一来,我们就看不到可以轻松地做的事情。