Sends the associated client the specified channel {@code message}for the channel with the specified {@code channelId} in a mannerthat satisfies the specified {@code delivery} guarantee.
When possible, the message should be delivered using the most efficient means (e.g., protocol and transport) to satisfy the delivery guarantee. However, a stronger delivery guarantee may be used to deliver the message if this protocol only supports stronger delivery guarantees. If this protocol is not able to satisfy the specified delivery guarantee (e.g., only supports weaker delivery guarantees than the one specified), then a {@link DeliveryNotSupportedException} will be thrown.
The {@code ByteBuffer} is not modified and may be reusedimmediately after this method returns. Changes made to the buffer after this method returns will have no effect on the message sent to the client by this invocation.
@param channelId a channel ID
@param message a channel message
@param delivery the channel's delivery guarantee
@throws DeliveryNotSupportedException if the specified {@code delivery} guarantee cannot be satisfied by this protocol
@throws IllegalArgumentException if the {@code message} size isgreater than {@link #getMaxMessageLength}
@throws IOException if an I/O error occurs