## Uses of Interface
org.springframework.messaging.MessageChannel

Packages that use MessageChannel
org.springframework.messaging: Support for working with messaging APIs and protocols.
org.springframework.messaging.core: Defines interfaces and implementation classes for messaging templates.
org.springframework.messaging.simp: Generic support for Simple Messaging Protocols including protocols such as STOMP.
org.springframework.messaging.simp.annotation.support: Support classes for handling messages from simple messaging protocols (like STOMP).
org.springframework.messaging.simp.broker: Provides a "simple" message broker implementation along with an abstract base class and other supporting types such as a registry for subscriptions.
org.springframework.messaging.simp.config: Configuration support for WebSocket messaging using higher level messaging protocols.
org.springframework.messaging.simp.stomp: Generic support for simple messaging protocols (like STOMP).
org.springframework.messaging.support: Provides implementations of `Message` along with a MessageBuilder and MessageHeaderAccessor for building and working with messages and message headers, as well as various `MessageChannel` implementations and channel interceptor support.

### Uses of MessageChannel in org.springframework.messaging

Subinterfaces of MessageChannel in org.springframework.messaging
`interface` `PollableChannel` A `MessageChannel` from which messages may be actively received through polling.
`interface` `SubscribableChannel` A `MessageChannel` that maintains a registry of subscribers and invokes them to handle messages sent through this channel.

### Uses of MessageChannel in org.springframework.messaging.core

Methods in org.springframework.messaging.core that return MessageChannel
`MessageChannel` BeanFactoryMessageChannelDestinationResolver.`resolveDestination(String name)`

Methods in org.springframework.messaging.core with parameters of type MessageChannel
`protected Message<?>` GenericMessagingTemplate.`doReceive(MessageChannel channel)`
`protected Message<?>` GenericMessagingTemplate.`doReceive(MessageChannel channel, long timeout)`
`protected void` GenericMessagingTemplate.`doSend(MessageChannel channel, Message<?> message)`
`protected void` GenericMessagingTemplate.`doSend(MessageChannel channel, Message<?> message, long timeout)`
`protected Message<?>` GenericMessagingTemplate.`doSendAndReceive(MessageChannel channel, Message<?> requestMessage)`

### Uses of MessageChannel in org.springframework.messaging.simp

Methods in org.springframework.messaging.simp that return MessageChannel
`MessageChannel` SimpMessagingTemplate.`getMessageChannel()` Return the configured message channel.

Constructors in org.springframework.messaging.simp with parameters of type MessageChannel
Constructor and Description
`SimpMessagingTemplate(MessageChannel messageChannel)` Create a new `SimpMessagingTemplate` instance.

### Uses of MessageChannel in org.springframework.messaging.simp.annotation.support

Constructors in org.springframework.messaging.simp.annotation.support with parameters of type MessageChannel
Constructor and Description
`SimpAnnotationMethodMessageHandler(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, SimpMessageSendingOperations brokerTemplate)` Create an instance of SimpAnnotationMethodMessageHandler with the given message channels and broker messaging template.

### Uses of MessageChannel in org.springframework.messaging.simp.broker

Methods in org.springframework.messaging.simp.broker that return MessageChannel
`MessageChannel` AbstractBrokerMessageHandler.`getClientOutboundChannel()`
`protected MessageChannel` AbstractBrokerMessageHandler.`getClientOutboundChannelForSession(String sessionId)` Get the MessageChannel to use for sending messages to clients, possibly a per-session wrapper when `preservePublishOrder=true`.

Constructors in org.springframework.messaging.simp.broker with parameters of type MessageChannel
Constructor and Description
`AbstractBrokerMessageHandler(SubscribableChannel inboundChannel, MessageChannel outboundChannel, SubscribableChannel brokerChannel)` Constructor with no destination prefixes (matches all destinations).
`AbstractBrokerMessageHandler(SubscribableChannel inboundChannel, MessageChannel outboundChannel, SubscribableChannel brokerChannel, Collection<String> destinationPrefixes)` Constructor with destination prefixes to match to destinations of messages.
`SimpleBrokerMessageHandler(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, SubscribableChannel brokerChannel, Collection<String> destinationPrefixes)` Create a SimpleBrokerMessageHandler instance with the given message channels and destination prefixes.

### Uses of MessageChannel in org.springframework.messaging.simp.config

Methods in org.springframework.messaging.simp.config that return MessageChannel
`protected MessageChannel` AbstractBrokerRegistration.`getClientOutboundChannel()`

Constructors in org.springframework.messaging.simp.config with parameters of type MessageChannel
Constructor and Description
`AbstractBrokerRegistration(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, String[] destinationPrefixes)`
`MessageBrokerRegistry(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel)`
`SimpleBrokerRegistration(SubscribableChannel inChannel, MessageChannel outChannel, String[] prefixes)`
`StompBrokerRelayRegistration(SubscribableChannel clientInboundChannel, MessageChannel clientOutboundChannel, String[] destinationPrefixes)`

### Uses of MessageChannel in org.springframework.messaging.simp.stomp

Constructors in org.springframework.messaging.simp.stomp with parameters of type MessageChannel
Constructor and Description
`StompBrokerRelayMessageHandler(SubscribableChannel inboundChannel, MessageChannel outboundChannel, SubscribableChannel brokerChannel, Collection<String> destinationPrefixes)` Create a StompBrokerRelayMessageHandler instance with the given message channels and destination prefixes.

### Uses of MessageChannel in org.springframework.messaging.support

Classes in org.springframework.messaging.support that implement MessageChannel
`class` `AbstractMessageChannel` Abstract base class for `MessageChannel` implementations.
`class` `AbstractSubscribableChannel` Abstract base class for `SubscribableChannel` implementations.
`class` `ExecutorSubscribableChannel` A `SubscribableChannel` that sends messages to each of its subscribers.

Methods in org.springframework.messaging.support with parameters of type MessageChannel
`default void` ExecutorChannelInterceptor.`afterMessageHandled(Message<?> message, MessageChannel channel, MessageHandler handler, Exception ex)` Invoked inside the `Runnable` submitted to the Executor after calling the target MessageHandler regardless of the outcome (i.e.
`void` ChannelInterceptorAdapter.`afterReceiveCompletion(Message<?> message, MessageChannel channel, Exception ex)` Deprecated.
`default void` ChannelInterceptor.`afterReceiveCompletion(Message<?> message, MessageChannel channel, Exception ex)` Invoked after the completion of a receive regardless of any exception that have been raised thus allowing for proper resource cleanup.
`void` ChannelInterceptorAdapter.`afterSendCompletion(Message<?> message, MessageChannel channel, boolean sent, Exception ex)` Deprecated.
`default void` ChannelInterceptor.`afterSendCompletion(Message<?> message, MessageChannel channel, boolean sent, Exception ex)` Invoked after the completion of a send regardless of any exception that have been raised thus allowing for proper resource cleanup.
`Message<?>` AbstractMessageChannel.ChannelInterceptorChain.`applyPostReceive(Message<?> message, MessageChannel channel)`
`void` AbstractMessageChannel.ChannelInterceptorChain.`applyPostSend(Message<?> message, MessageChannel channel, boolean sent)`
`boolean` AbstractMessageChannel.ChannelInterceptorChain.`applyPreReceive(MessageChannel channel)`
`Message<?>` AbstractMessageChannel.ChannelInterceptorChain.`applyPreSend(Message<?> message, MessageChannel channel)`
`default Message<?>` ExecutorChannelInterceptor.`beforeHandle(Message<?> message, MessageChannel channel, MessageHandler handler)` Invoked inside the `Runnable` submitted to the Executor just before calling the target MessageHandler to handle the message.
`Message<?>` ChannelInterceptorAdapter.`postReceive(Message<?> message, MessageChannel channel)` Deprecated.
`default Message<?>` ChannelInterceptor.`postReceive(Message<?> message, MessageChannel channel)` Invoked immediately after a Message has been retrieved but before it is returned to the caller.
`void` ChannelInterceptorAdapter.`postSend(Message<?> message, MessageChannel channel, boolean sent)` Deprecated.
`default void` ChannelInterceptor.`postSend(Message<?> message, MessageChannel channel, boolean sent)` Invoked immediately after the send invocation.
`boolean` ChannelInterceptorAdapter.`preReceive(MessageChannel channel)` Deprecated.
`default boolean` ChannelInterceptor.`preReceive(MessageChannel channel)` Invoked as soon as receive is called and before a Message is actually retrieved.
`Message<?>` ChannelInterceptorAdapter.`preSend(Message<?> message, MessageChannel channel)` Deprecated.
`default Message<?>` ChannelInterceptor.`preSend(Message<?> message, MessageChannel channel)` Invoked before the Message is actually sent to the channel.
`Message<?>` ImmutableMessageChannelInterceptor.`preSend(Message<?> message, MessageChannel channel)`
`MessageBuilder<T>` MessageBuilder.`setErrorChannel(MessageChannel errorChannel)`
`void` MessageHeaderAccessor.`setErrorChannel(MessageChannel errorChannel)`
`MessageBuilder<T>` MessageBuilder.`setReplyChannel(MessageChannel replyChannel)`
`void` MessageHeaderAccessor.`setReplyChannel(MessageChannel replyChannel)`
`void` AbstractMessageChannel.ChannelInterceptorChain.`triggerAfterReceiveCompletion(Message<?> message, MessageChannel channel, Exception ex)`
`void` AbstractMessageChannel.ChannelInterceptorChain.`triggerAfterSendCompletion(Message<?> message, MessageChannel channel, boolean sent, Exception ex)`