@Override public String getID() { return bc.getID(); }
@Override public String getID() { return bc.getID(); }
@Override public String getID() { return bc.getID(); }
/** * Adds/replaces the broadcaster to the JGroupsChannel * @param broadcaster */ public void addBroadcaster(Broadcaster broadcaster) { this.broadcasters.put(broadcaster.getID(), broadcaster); }
/** * Removes the broadcaster from the JGroupsChannel * @param broadcaster */ public void removeBroadcaster(Broadcaster broadcaster) { this.broadcasters.remove(broadcaster.getID()); }
/** * Removes the broadcaster from the JGroupsChannel * @param broadcaster */ public void removeBroadcaster(Broadcaster broadcaster) { this.broadcasters.remove(broadcaster.getID()); }
/** * Adds/replaces the broadcaster to the JGroupsChannel * @param broadcaster */ public void addBroadcaster(Broadcaster broadcaster) { this.broadcasters.put(broadcaster.getID(), broadcaster); }
/** * {@inheritDoc} */ @Override public BroadcastAction filter(String broadcasterId, final Object originalMessage, final Object message) { logger.info("Filtering message '{}' with {}", new Object[] { message, getClass().getName() }); RMIPeerManager.getInstance().sendAll(bc.getID(), message); return new BroadcastAction(message); }
public void onComplete(Broadcaster b) { try { r.completed(b.getID()); } finally { metaBroadcaster.removeBroadcasterListener(this); } } });
/** * Every time a message gets broadcasted, make sure we update the cluster. * * @param message the message to broadcast. * @return The same message. */ @Override public BroadcastAction filter(String broadcasterId, Object originalMessage, Object message) { if (bc != null) { this.jchannel.send(this.bc.getID(), message); } return new BroadcastAction(message); }
/** * Every time a message gets broadcasted, make sure we update the cluster. * * @param message the message to broadcast. * @return The same message. */ @Override public BroadcastAction filter(String broadcasterId, Object originalMessage, Object message) { if (bc != null) { this.jchannel.send(this.bc.getID(), message); } return new BroadcastAction(message); }
@Ready public void onReady(final AtmosphereResource resource) throws IOException { log.info("[websocket] Client {} connected to build {}", resource.uuid(), resource.getBroadcaster().getID()); java.util.UUID buildId = BuildSerializer.uuidFromString(resource.getBroadcaster().getID()); if (build == null || build.getId() == null) { build = hub.getOrCreateBuild(buildId); } else { if (!build.getId().equals(buildId)) { log.debug("[websocket] this should never happen, no ? build.uuid {} !~= {} resource.getBroadcaster().getID", buildId, resource.getBroadcaster().getID()); } } }
/** * Every time a message gets broadcasted, make sure we update the cluster. * * @param o the message to broadcast. * @return The same message. */ @Override public BroadcastAction filter(String broadcasterId, Object originalMessage, Object o) { if (o instanceof String) { String message = (String) o; // Avoid re-broadcasting if (!receivedMessages.remove(message)) { try { String id = bc.getID(); if (id.startsWith("/*")) { id = "atmosphere"; } TextMessage textMessage = session.createTextMessage(message.toString()); textMessage.setStringProperty("BroadcasterId", id); publisher.send(textMessage); } catch (JMSException ex) { logger.warn("failed to publish message", ex); } } return new BroadcastAction(message); } else { return new BroadcastAction(o); } }
@Disconnect public final void onDisconnect(final AtmosphereResourceEvent event){ Collection<AtmosphereResource> atmosphereResources = event.getResource().getBroadcaster().getAtmosphereResources(); if (atmosphereResources.size() < 2 && subscription != null) { synchronized (subscription) { subscription.unsubscribe(); subscription = null; } LOG.debug("[websocket {}] [broadcaster:#{}] unsubscribed !", scopeAsAString, event.getResource().getBroadcaster().getID()); } if (event.isCancelled()) { LOG.info("[websocket {}] Client {} cancelled the connection", scopeAsAString, event.getResource().uuid()); } else if(event.isClosedByClient()) { LOG.info("[websocket {}] Client {} closed the connection", scopeAsAString, event.getResource().uuid()); } }
@Ready public final void onReady(final AtmosphereResource r){ if (dagName == null) { throw new RuntimeException("@PathParam(\"dagName\") is " + dagName); } if (scopeAsAString == null) { throw new RuntimeException("@PathParam(\"scope\") is " + scopeAsAString); } String[] both = DagOnSteroids.parseName(dagName); dagOnSteroids = this.dags.getDagOnSteroids(both[0]); if (dagOnSteroids == null) { throw new RuntimeException("dag /"+dagName+"/ not found"); } scope = Scope.valueOf(scopeAsAString); synchronized (lock) { if (subscription == null) { final Bus<Node> bus = dags.getBus(dagName, scope); if (bus == null) { LOG.warn("[websocket {}] no bus for dag {} {}", scopeAsAString, dagName, dagOnSteroids); } else { subscription = bus.toObservable() .map(nodeevent -> nodeevent.get()) .subscribe(node -> broadcast(r.getBroadcaster(), node)); LOG.debug("[websocket {}] [broadcaster:#{}] subscribed - browser {} connected to dag {}", scopeAsAString, r.getBroadcaster().getID(), r.uuid(), dagOnSteroids ); } } } }
@Override public void sendMessage(List<SocketIOPacketImpl> messages) throws SocketIOException { if (messages != null) { for (SocketIOPacketImpl msg : messages) { switch (msg.getFrameType()) { case MESSAGE: case JSON: case EVENT: case ACK: case ERROR: msg.setPadding(messages.size() > 1); try { sendMessage(msg.toString()); } catch (Exception e) { AtmosphereResourceImpl resource = session.getAtmosphereResourceImpl(); // if BroadcastCache is available, add the message to the cache if (resource != null && DefaultBroadcaster.class.isAssignableFrom(resource.getBroadcaster().getClass())) { DefaultBroadcaster.class.cast(resource.getBroadcaster()).getBroadcasterConfig().getBroadcasterCache() .addToCache(resource.getBroadcaster().getID(), resource, msg); } } break; default: logger.error("Unknown SocketIOEvent msg = " + msg); } } } }
@Override public void sendMessage(List<SocketIOPacketImpl> messages) throws SocketIOException { if (messages != null) { for (SocketIOPacketImpl msg : messages) { switch (msg.getFrameType()) { case MESSAGE: case JSON: case EVENT: case ACK: case ERROR: msg.setPadding(messages.size() > 1); try { sendMessage(msg.toString()); } catch (Exception e) { AtmosphereResourceImpl resource = session.getAtmosphereResourceImpl(); // if BroadcastCache is available, add the message to the cache if (resource != null && DefaultBroadcaster.class.isAssignableFrom(resource.getBroadcaster().getClass())) { resource.getBroadcaster().getBroadcasterConfig().getBroadcasterCache(). addToCache(resource.getBroadcaster().getID(), resource.uuid(), new BroadcastMessage(msg)); } } break; default: logger.error("Unknown SocketIOEvent msg = " + msg); } } } }