Broadcaster b = broadcasterFactory.get(); b.setBroadcasterLifeCyclePolicy(BroadcasterLifeCyclePolicy.EMPTY_DESTROY);
@Override public void onSuspend(final AtmosphereResourceEvent event) { super.onSuspend(event); event.getResource().getBroadcaster().setBroadcasterLifeCyclePolicy(BroadcasterLifeCyclePolicy.EMPTY_DESTROY); // OK, we can start polling Twitter! suspendLatch.countDown(); } }).build();
public RequestImpl(Meteor meteor, Session session) { super(); this.meteor = meteor; meteor.addListener(this); this.session = session; // Set policy to EMPTY_DESTROY so that Broadcaster is removed from BroadcasterFactory and releases resources if // there is no AtmosphereResource associated with it. policy = new BroadcasterLifeCyclePolicy.Builder().policy( BroadcasterLifeCyclePolicy.ATMOSPHERE_RESOURCE_POLICY.EMPTY_DESTROY).build(); this.meteor.getBroadcaster().setBroadcasterLifeCyclePolicy(policy); }
/** * Suspends the current HTTP connection. * * @param sessionId * session id to identify client * @return a response that is not committed, just flushed */ @GET @Path("/connect") public SuspendResponse<String> connect(@QueryParam("sessionId") String sessionId) { Broadcaster broadcaster = CometSessionManager.get(sessionId); if (broadcaster == null) { broadcaster = new JerseyBroadcaster(sessionId); BroadcasterLifeCyclePolicy policy = new BroadcasterLifeCyclePolicy.Builder().policy( ATMOSPHERE_RESOURCE_POLICY.EMPTY_DESTROY).build(); broadcaster.setBroadcasterLifeCyclePolicy(policy); broadcaster.addBroadcasterLifeCyclePolicyListener(new CometBroadcasterLifeCyclePolicyListener(sessionId)); CometSessionManager.add(sessionId, broadcaster); } return new SuspendResponse.SuspendResponseBuilder<String>().broadcaster(broadcaster).outputComments(true) .build(); }
newBroadcaster.setBroadcasterLifeCyclePolicy(BroadcasterLifeCyclePolicy.EMPTY_DESTROY);