@Override public void sendText(final String partialMessage, final boolean isLast) throws IOException { if (binaryFrameSender != null) { throw JsrWebSocketMessages.MESSAGES.cannotSendInMiddleOfFragmentedMessage(); } if (textFrameSender == null) { textFrameSender = webSocketChannel.send(WebSocketFrameType.TEXT); } try { Channels.writeBlocking(textFrameSender, WebSocketUtils.fromUtf8String(partialMessage)); if (isLast) { textFrameSender.shutdownWrites(); Channels.flushBlocking(textFrameSender); } } finally { if (isLast) { textFrameSender = null; } } }
@Override public void sendBinary(final ByteBuffer partialByte, final boolean isLast) throws IOException { if (textFrameSender != null) { throw JsrWebSocketMessages.MESSAGES.cannotSendInMiddleOfFragmentedMessage(); } if (binaryFrameSender == null) { binaryFrameSender = webSocketChannel.send(WebSocketFrameType.BINARY); } try { Channels.writeBlocking(binaryFrameSender, partialByte); if (isLast) { binaryFrameSender.shutdownWrites(); Channels.flushBlocking(binaryFrameSender); } } finally { if (isLast) { binaryFrameSender = null; } } }
public void assertNotInFragment() { if (textFrameSender != null || binaryFrameSender != null) { throw JsrWebSocketMessages.MESSAGES.cannotSendInMiddleOfFragmentedMessage(); } }