3

我正在使用portaljavascript 库与我的 Java 套接字进行交互。我似乎无法确定如何将请求映射到以下资源上的方法。正在正确建立套接字@Path("workstation/approval/{uuid}"),然后通过连接传递 JSON 数据。但是在 Java 方面,我如何将数据推送映射到方法以便我可以处理它?

@Path("workstation/approval/{uuid}")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public class WorkstationResource {

    ObjectMapper mapper = new ObjectMapper();

    @Context
    private BroadcasterFactory broadcasterFactory;

    @GET
    @Suspend
    public Broadcastable get(@PathParam("uuid") String uuid) {
        return new Broadcastable(getBroadcaster(uuid));
    }

    private Broadcaster getBroadcaster(String uuid) {
        return broadcasterFactory.lookup(JerseyBroadcaster.class, "workstation/approval/"+uuid, true);
    }

    public String onMessage(String message) throws IOException {
        return mapper.writeValueAsString("This is a test");
    }
}
4

2 回答 2

1

您使用的是 WebSocket 还是 Comet?在任何情况下,尝试添加一个 @Post 注释方法,这将起作用。如果您有更多问题,请访问 Atmosphere邮件列表,或查看项目示例

于 2013-04-19T18:03:10.553 回答
0

其实它很简单!只需为每个方法添加另一个参数,例如,更改

public Broadcastable get(@PathParam("uuid") String uuid) {
    return new Broadcastable(getBroadcaster(uuid));
}

public Broadcastable get(@PathParam("uuid") String uuid,String postData) {
    return new Broadcastable(getBroadcaster(uuid));
}

您将通过 postData 参数中的连接传递数据

于 2013-04-19T22:16:26.733 回答