Sends the message contained in the specified buffer to all client sessions joined to this channel. If no sessions are joined to this channel, then no action is taken. The message starts at the buffer's current position and ends at the buffer's limit. The buffer's position is not modified by this operation.
If the specified {@code sender} is non-{@code null} and thatsender is not a member of this channel when the message is processed to be sent, then the message will not be forwarded to the channel for delivery.
The {@code ByteBuffer} may be reused immediately after this methodreturns. Changes made to the buffer after this method returns will have no effect on the message sent to the channel by this invocation.
The maximum length of a message that can be sent over the channel is dependent on the maximum message length supported by all joined client sessions. (See: {@link ClientSession#getMaxMessageLength})
@param sender the sending client session, or {@code null}
@param message a message
@return this channel
@throws IllegalStateException if this channel is closed
@throws IllegalArgumentException if the channel would be unableto send the specified message because it exceeds a size limit
@throws MessageRejectedException if there are not enough resourcesto send the specified message
@throws TransactionException if the operation failed because ofa problem with the current transaction