获取与Atmosphere @ManagedService消息关联的连接

时间:2014-05-29 00:14:10

标签: java uuid atmosphere

this example中,有没有办法修改此方法

@org.atmosphere.config.service.Message(encoders = {JacksonEncoder.class}, decoders = {JacksonDecoder.class})
public Message onMessage(Message message) throws IOException {
    logger.info("{} just send {}", message.getAuthor(), message.getMessage());
    return message;
}

所以我可以获得UUID(在连接时在AtmosphereResource中可用),以便我知道消息来自哪个连接?我尝试添加AtmosphereResource参数,但它不起作用(没有收到消息)。

1 个答案:

答案 0 :(得分:4)

实际上,AtmosphereResource参数可以添加到onMessage。它必须是第一个参数。 (我试图将它添加为第二个参数,但它不起作用。)

所以问题中的方法可以改为:

@org.atmosphere.config.service.Message(encoders = {JacksonEncoder.class}, decoders = {JacksonDecoder.class})
public Message onMessage(AtmosphereResource r, Message message) throws IOException {

    // TODO: Look up any info associated with the connection using r.uuid().

    logger.info("{} just send {}", message.getAuthor(), message.getMessage());
    return message;
}