@Disconnect
public void onDisconnect(AtmosphereResourceEvent event) throws IOException {
if (writeOnClose.get() && build != null && !build.isReadonly()) {
UUID buildId = build.getId();
String eventKey = "written";
String eventValue = buildId.toString();
try {
hub.writeBuild(build);
log.info("[websocket] written build {}", buildId);
} catch (IOException e) {
eventKey = e.getClass().getSimpleName();
eventValue = e.getMessage();
log.info("[websocket] exception writing build {}, {} : {}", buildId, eventKey, eventValue);
}
event.broadcaster().broadcast(new Event(eventKey, eventValue, null));
}
final String cause;
if (event.isCancelled()) {
cause = "cancelled";
} else if (event.isClosedByApplication()) {
cause = "closedByAppplication";
} else if (event.isClosedByClient()) {
cause = "closedByClient";
} else {
cause = "unknown";
}
log.info("[websocket] Client {} disconnected, cause: {}, buildId: {}, writeOnClose: {}", event.getResource().uuid(), cause, build == null ? null : build.getId(), writeOnClose);
}