Atmosphere @Message不返回JSON编码的对象

时间:2018-07-04 02:24:20

标签: json atmosphere

我是大气新手。我正在尝试通过在线教程来实施一个类似于“气氛聊天”的项目。我的编码器类与大气聊天中的编码器类相同,但是我的消息未正确编码。在我的项目中,使用长轮询连接到服务器的浏览器每3秒发送GET请求,服务器通过发送对象响应来响应该请求。此响应链中的第一个响应正在被编码,但是后面的未得到编码,而是将整个对象发送到浏览器。

这是代码段:

编码器类:

    import com.fasterxml.jackson.databind.ObjectMapper;
    import org.atmosphere.config.managed.Encoder;
    import javax.inject.Inject;
    import java.io.IOException;

    public class OrderJacksonEncoder implements Encoder<Order, String> {

    @Inject
    private ObjectMapper mapper;

    @Override
    public String encode(Order order) {
        try {
            return mapper.writeValueAsString(order);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

获取注释

@Get
 public void onGet(AtmosphereResouce r) {
     broadcaster.broadcast(new Order(/**some fields/));
 }

OnMessage注释

@org.atmosphere.config.service.Message(encoders = {OrderJacksonEncoder.class})
public Order sendOrder(Order order) throws IOException {
    return order;
}

0 个答案:

没有答案