@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();
   }
 }