/** * Creates channel (named {@link Broadcaster} in Atmosphere) based on the {@link org.atmosphere.cpr.AtmosphereRequest#getPathInfo()} * * @param resource An {@link AtmosphereResource} * @return */ public boolean apply(AtmosphereResource resource) { String pathInfo = resource.getRequest().getPathInfo(); BroadcasterFactory f = resource.getAtmosphereConfig().getBroadcasterFactory(); if (pathInfo == null) { resource.setBroadcaster(f.lookup("/*")); return true; } final Broadcaster b = f.lookup(pathInfo, true); resource.setBroadcaster(b); return true; } }
@Override public void configure(AtmosphereConfig config) { heartbeat = config.getBroadcasterFactory().lookup(DefaultBroadcaster.class, "/swaggersocket.heartbeat"); if (heartbeat == null) { heartbeat = config.getBroadcasterFactory().get(DefaultBroadcaster.class, "/swaggersocket.heartbeat"); } lazywrite = config.getInitParameter("io.swagger.swaggersocket.protocol.lazywrite", false); emptyentity = config.getInitParameter("io.swagger.swaggersocket.protocol.emptyentity", false); String p = config.getInitParameter("io.swagger.swaggersocket.protocol.includedheaders"); if (p != null) { includedheaders = Pattern.compile(p, Pattern.CASE_INSENSITIVE); } p = config.getInitParameter("io.swagger.swaggersocket.protocol.excludedheaders"); if (p != null) { excludedheaders = Pattern.compile(p, Pattern.CASE_INSENSITIVE); } }
/** * This is the main entrypoint on the server that you will want to hook into and override. * This method is called when a client has request a new connection. Best practice is to do all your * required setup here and tie the AtmosphereResource to a Broadcaster, but do not send anything to * the client yet. If you wish to do so it is best to let the client send a notification to the server * using the {@link AtmosphereClient#post} method in the onConnected event. * * @param resource * @return * @throws ServletException * @throws IOException */ public int doComet(GwtAtmosphereResource resource) throws ServletException, IOException { Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup(Broadcaster.class, GWT_BROADCASTER_ID); if (broadcaster == null) { broadcaster = BroadcasterFactory.getDefault().get(DefaultBroadcaster.class, GWT_BROADCASTER_ID); } resource.getAtmosphereResource().setBroadcaster(broadcaster); return NO_TIMEOUT; }
public Broadcaster createBroadcaster(String ID) { Broadcaster b = BroadcasterFactory.getDefault().get(DefaultBroadcaster.class, ID); atm.setBroadcaster(b); return b; } }
AtmosphereFramework atmosphereFramework = config.framework(); String p = config.getInitParameter(JERSEY_CONTAINER_RESPONSE_WRITER_CLASS); ContainerResponseWriter w; if (p != null) { .getAttribute(FrameworkConfig.ATMOSPHERE_RESOURCE); if (Boolean.parseBoolean(config.getInitParameter(SUPPORT_LOCATION_HEADER))) { useResumeAnnotation = true; newBroadcaster = config.getBroadcasterFactory().lookup(broadcasterName, true); newBroadcaster.setBroadcasterLifeCyclePolicy(BroadcasterLifeCyclePolicy.EMPTY_DESTROY); r.addEventListener(new OnSuspend() { @Override public void onSuspend(AtmosphereResourceEvent event) { throw new IllegalStateException(e.getMessage()); broadcaster = config.getBroadcasterFactory().lookup(c, topic, true); throw new IllegalStateException(e.getMessage()); r.setBroadcaster(config.getBroadcasterFactory().lookup(c, topic, true));
public List<AtmosphereRequest> onMessage(WebSocket webSocket, String data) { Broadcaster b = webSocket.resource().getBroadcaster(); b.broadcast(data); log.info("broadcaster: {}", b); log.info("received: {}", data); public void onOpen(WebSocket webSocket) { log.info("connection requested: {}", webSocket.resource().uuid()); webSocket.resource().setBroadcaster(factory.lookup("/sensorIngest/" + requestCount++, true)).suspend(-1);
BroadcasterFactory broadcasterFactory = r.getAtmosphereConfig().getBroadcasterFactory(); bc = r.getBroadcaster(); bc = broadcasterFactory.get(id); bc.setScope(Broadcaster.SCOPE.REQUEST); } catch (Exception ex) { logger.error("failed to instantiate broadcaster with factory: " + broadcasterFactory, ex); bc.setScope(Broadcaster.SCOPE.REQUEST); r.setBroadcaster(bc);
try { List<Broadcaster> broadcasters = new LinkedList<>(broadcasterFactory.getBroadcasterFactory() .lookupAll()); logger.trace("Publishing all players changed to " + broadcasters.size() + " players."); broadcasters.forEach(broadcaster -> { try { logger.trace("Looking up player for feed " + broadcaster.getID()); String playerId = broadcaster.getID().replace(LiveFeedService.PATH_ROOT, ""); message.setMessageType(MessageType.Player); message.setPlayer(optional.get()); broadcaster.broadcast(message);
public AtmosphereSocket(AtmosphereResource resource) { this.params = params(resource.getRequest().getParameterMap()); this.broadcaster = broadcasterFactory().get(id()).addAtmosphereResource(resource); }
public boolean sendNotification(String topicName, String message) throws IOException { BroadcasterFactory broadcasterFactory = framework.getBroadcasterFactory(); Broadcaster b = broadcasterFactory.lookup(Notifications.BASE_PATH + topicName); if(b != null) { b.broadcast(message); return true; } else { return false; } }
@Override public Object fromString(String topic) { Broadcaster broadcaster; try { AtmosphereResource r = (AtmosphereResource) req.getAttribute(FrameworkConfig.ATMOSPHERE_RESOURCE); BroadcasterFactory bp = r.getAtmosphereConfig().getBroadcasterFactory(); Class<? extends Broadcaster> c; try { c = (Class<Broadcaster>) Class.forName((String) req.getAttribute(ApplicationConfig.BROADCASTER_CLASS)); } catch (Throwable e) { throw new IllegalStateException(e.getMessage()); } broadcaster = bp.lookup(c, topic, true); } catch (Throwable ex) { throw new WebApplicationException(ex); } logger.trace("Injected Broadcaster {}", broadcaster); req.setAttribute(AtmosphereFilter.INJECTED_BROADCASTER, broadcaster); return broadcaster; } }
@MeteorService(path = "/recursos/fila-de-atendimento", interceptors = {AtmosphereResourceLifecycleInterceptor.class}) public class FilaDeAtendimentoResource extends HttpServlet { @Inject private BroadcasterFactory broadcasterFactory; ... /** Used for registering for a message */ public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { ... Broadcaster broadcaster = broadcasterFactory.lookup(broadcasterId, true); meteor.setBroadcaster(broadcaster); ... } }
@EventHandler public void handle(TradeExecutedEvent event) { LOGGER.debug("all broadcasters: \n" + BroadcasterFactory.getDefault().lookupAll()); LOGGER.debug("handling TradeExecutedEvent: {}", event); BroadcastHelper.broadcastTrade(event); } }
@Override public <T extends Broadcaster> T get(Class<T> c, Object id) { return _get().get(c, id); }
@Override public Collection<Broadcaster> lookupAll() { return _get().lookupAll(); }
@Override public boolean add(Broadcaster b, Object id) { return _get().add(b, id); }
private boolean publishPlayerUpdate(final P player) { final boolean[] status = new boolean[]{false}; try { logger.trace("Publishing player changed to " + player.getId()); Broadcaster broadcaster = broadcasterFactory.getBroadcasterFactory() .lookup(LiveFeedService.PATH_ROOT + player.getIdAsString()); if (broadcaster != null) { WebSocketMessage message = new WebSocketMessage(); message.setMessageType(MessageType.Player); message.setPlayer(player); broadcaster.broadcast(message); status[0] = true; } else { logger.trace("Player is not connected to this server for player changed " + player.getId()); } } catch (Exception e) { logger.error("Error publishing player update " + player.getId(), e); } publicationListeners.forEach(listner -> { try { logger.info("trace {} {}", player.getIdAsString(), status[0]); listner.publishedPlayerUpdate(player, status[0]); } catch (Exception e) { logger.error("Error publishing to publication listener", e); } }); return status[0]; }
public static Broadcaster getTradeBroadcaster() { return FACTORY.lookup(TRADES_CHANNEL, true); }
private static Broadcaster lookupDefaultBroadcaster() { BroadcasterFactory factory = BroadcasterFactory.getDefault(); if (factory == null) { throw new WicketRuntimeException( "There is no Atmosphere BroadcasterFactory configured. Did you include the " + "atmosphere.xml configuration file and configured AtmosphereServlet?"); } Collection<Broadcaster> allBroadcasters = factory.lookupAll(); if (allBroadcasters.isEmpty()) { throw new WicketRuntimeException( "The Atmosphere BroadcasterFactory has no Broadcasters, " + "something is wrong with your Atmosphere configuration."); } return allBroadcasters.iterator().next(); }
@Override public Broadcaster get(Object id) { return _get().get(id); }