Communication via wss in general works fine by now.
Unfortunately closing wss connections is implemented in a very basic way:
public void close() throws IOException {
sslEngine.closeOutbound();
sslEngine.getSession().invalidate();
if( sc.isOpen() )
sc.write( wrap( emptybuffer ) );
sc.close();
}
It is possible that sc.write will not send enough bytes ( i measured 37 bytes ) at once to complete the TLS close notify. Calling sc.write in a loop might block the current thread indefinitely so that is not an option.
As a result your peer host might complain about an unexpectedly closed connection after HE initiated the websocket close handshake.
It will take me a few days to implement the close handshaking the nonblocking way.
Please excuse my humble English.
Communication via wss in general works fine by now.
Unfortunately closing wss connections is implemented in a very basic way:
It is possible that sc.write will not send enough bytes ( i measured 37 bytes ) at once to complete the TLS close notify. Calling sc.write in a loop might block the current thread indefinitely so that is not an option.
As a result your peer host might complain about an unexpectedly closed connection after HE initiated the websocket close handshake.
It will take me a few days to implement the close handshaking the nonblocking way.
Please excuse my humble English.