code: public final StreamSinkFrameChannel send(WebSocketFrameType type) throws IOException {
          if(closeFrameSent || (closeFrameReceived && type != WebSocketFrameType.CLOSE)) {
              throw WebSocketMessages.MESSAGES.channelClosed();
          }
          if (isWritesBroken()) {
              throw WebSocketMessages.MESSAGES.streamIsBroken();
          }
  
  
          StreamSinkFrameChannel ch = createStreamSinkChannel(type);
          getFramePriority().addToOrderQueue(ch);
          if (type == WebSocketFrameType.CLOSE) {
              closeFrameSent = true;
          }
          return ch;
      }
docs: Returns a new {@link StreamSinkFrameChannel} for sending the given {@link WebSocketFrameType} with the given payload.
  If this method is called multiple times, subsequent {@link StreamSinkFrameChannel}'s will not be writable until all previous frames
  were completely written.
  
  @param type        The {@link WebSocketFrameType} for which a {@link StreamSinkChannel} should be created