Translations: Sample Java Programs/73/en
From ArdorDocs
private void process() throws MalformedURLException {
URL remoteUrl = new URL("http://localhost:26876/nxt");
JO response;
String token = null;
try {
// Monitor the blockchain for a new block
response = EventRegisterCall.create().event("Block.BLOCK_PUSHED").remote(remoteUrl).call();
Logger.logInfoMessage("EventRegisterCall add %s", response.toJSONString());
if (!response.isExist("token")) {
// Registration failed
return;
}
token = response.getString("token");
JA events;
// Wait for the next event. The while loop is not necessary but serves as a good practice in order not to
// keep and Http request open for a long time.
while (true) {
// Wait up to 1 second for the event to occur
response = EventWaitCall.create().timeout("1").token(token).remote(remoteUrl).call();
Logger.logInfoMessage("EventWaitCall %s", response.toJSONString());
events = response.getArray("events");
if (events.size() > 0) {
// If the event occurred stop waiting
break;
}
}
// At this point the events array may include more than one event.
events.objects().forEach(e -> Logger.logInfoMessage("" + e));
} finally {
if (token != null) {
// Unregister the event listener
response = EventRegisterCall.create().token(token).remove("true").remote(remoteUrl).call();
Logger.logInfoMessage("EventRegisterCall remove %s", response.toJSONString());
}
}
}
} </syntaxhighlight>
