public boolean sendFrame(Framedata framedata) throws IOException {
		ByteBuffer b = draft.createBinaryFrame(framedata);
		// See if we have any backlog that needs to be sent first
		if (handleWrite()) {
			// Write the ByteBuffer to the socket
			channelWrite(b);
		}

		// If we didn't get it all sent, add it to the buffer of buffers
		if (b.remaining() > 0) {
			if (!this.bufferQueue.offer(b)) {
				throw new IOException(
						"Buffers are full, message could not be sent to"
								+ this.socketChannel.socket()
										.getRemoteSocketAddress());
			}
			return false;
		}
		return true;
	}