I have tried writing to the Response OutputStream, because there is no proper
disconnect callback.
Unfortunately, this doesn't seem to work either. When the client is
disconnected, writing and flushing the buffer did not throw an exception.
I use the following code:
private boolean write(byte[] output, AsyncContext context) {
try {
OutputStream stream = context.getResponse().getOutputStream();
stream.write(output);
stream.flush();
return true;
} catch (IOException ex) {
// Disconnect detected
log.error(ex);
removeAsyncContext(context);
return false;
}
}
The weird thing is, it does throws an exception the second time you try to
write to the output stream.
It looks like the first time you write it flips internal state to error,
without notifying.
What is a proper way to detect whether something written to the client is
actually received?
Oscar
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]