void onClose(AtmosphereResourceEvent e) { for (AtmosphereResourceEventListener r : listeners) { r.onClose(e); if (transport.equals(TRANSPORT.WEBSOCKET) && WebSocketEventListener.class.isAssignableFrom(r.getClass())) { WebSocketEventListener.class.cast(r).onClose(new WebSocketEventListener.WebSocketEvent(1005, CLOSE, webSocket)); } } }
switch (event.type()) { case CONNECT: WebSocketEventListener.class.cast(l).onConnect(event); break; case DISCONNECT: WebSocketEventListener.class.cast(l).onDisconnect(event); onDisconnect(event, l); break; case CONTROL: WebSocketEventListener.class.cast(l).onControl(event); break; case MESSAGE: WebSocketEventListener.class.cast(l).onMessage(event); break; case HANDSHAKE: WebSocketEventListener.class.cast(l).onHandshake(event); break; case CLOSE: l.onDisconnect(new AtmosphereResourceEventImpl(r, !isClosedByClient, false, isClosedByClient, null)); onDisconnect(event, l); WebSocketEventListener.class.cast(l).onClose(event); break; logger.debug("Listener error {}", t); try { WebSocketEventListener.class.cast(l).onThrowable(new AtmosphereResourceEventImpl(r, false, false, t)); } catch (Throwable t2) { logger.warn("Listener error {}", t2);
void onDisconnect(AtmosphereResourceEvent e) { for (AtmosphereResourceEventListener r : listeners) { r.onDisconnect(e); if (transport.equals(TRANSPORT.WEBSOCKET) && WebSocketEventListener.class.isAssignableFrom(r.getClass())) { WebSocketEventListener.class.cast(r).onDisconnect(new WebSocketEventListener.WebSocketEvent(1005, CLOSE, webSocket)); } } if (e.getResource() != null) { config.framework().notifyDestroyed(e.getResource().uuid()); } }
private void onDisconnect(WebSocketEvent event, AtmosphereResourceEventListener l) { if (event.webSocket() != null && event.webSocket().resource() != null) { framework.notifyDestroyed(event.webSocket().resource().uuid()); } WebSocketEventListener.class.cast(l).onDisconnect(event); }