public class SimpMessagingTemplate extends AbstractMessageSendingTemplate<StringSE> implements SimpMessageSendingOperations
SimpMessageSendingOperations
の実装。 ユーザーにメッセージを送信するためのメソッドも提供します。ユーザー宛先の詳細については、UserDestinationResolver
を参照してください。
CONVERSION_HINT_HEADER, logger
コンストラクターと説明 |
---|
SimpMessagingTemplate(MessageChannel messageChannel) 新しい SimpMessagingTemplate インスタンスを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload) 指定されたユーザーにメッセージを送信します。 |
void | convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, MapSE<StringSE, ObjectSE> headers) 指定されたユーザーにメッセージを送信します。 |
void | convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, MapSE<StringSE, ObjectSE> headers, MessagePostProcessor postProcessor) 指定されたユーザーにメッセージを送信します。 |
void | convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, MessagePostProcessor postProcessor) 指定されたユーザーにメッセージを送信します。 |
protected void | doSend(StringSE destination, Message<?> message) |
MessageHeaderInitializer | getHeaderInitializer() 設定済みのヘッダー初期化子を返します。 |
MessageChannel | getMessageChannel() 設定されたメッセージチャネルを返します。 |
long | getSendTimeout() 設定された送信タイムアウト(ミリ秒単位)を返します。 |
StringSE | getUserDestinationPrefix() 設定されたユーザー宛先プレフィックスを返します。 |
protected MapSE<StringSE, ObjectSE> | processHeadersToSend(MapSE<StringSE, ObjectSE> headers) 新しいマップを作成し、指定されたヘッダーをキー NATIVE_HEADERS NATIVE_HEADERS NATIVE_HEADERS に配置します。 |
void | send(Message<?> message) 指定されたメッセージのヘッダーにすでに SimpMessageHeaderAccessor#DESTINATION_HEADER が含まれている場合、メッセージは変更なしで送信されます。 |
void | setHeaderInitializer(MessageHeaderInitializer headerInitializer) MessageHeaderInitializer を構成して、SimpMessagingTemplate を介して作成されたすべてのメッセージのヘッダーに適用します。 |
void | setSendTimeout(long sendTimeout) 送信操作に使用するタイムアウト値をミリ秒単位で指定します。 |
void | setUserDestinationPrefix(StringSE prefix) 特定のユーザーをターゲットとする宛先に使用するプレフィックスを構成します。 |
convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, doConvert, getDefaultDestination, getMessageConverter, getRequiredDefaultDestination, send, setDefaultDestination, setMessageConverter
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, send
public SimpMessagingTemplate(MessageChannel messageChannel)
SimpMessagingTemplate
インスタンスを作成します。messageChannel
- メッセージチャンネル (非 null
)public MessageChannel getMessageChannel()
public void setUserDestinationPrefix(StringSE prefix)
デフォルト値は "/user/" です。
public StringSE getUserDestinationPrefix()
public void setSendTimeout(long sendTimeout)
public long getSendTimeout()
public void setHeaderInitializer(@Nullable MessageHeaderInitializer headerInitializer)
MessageHeaderInitializer
を構成して、SimpMessagingTemplate
を介して作成されたすべてのメッセージのヘッダーに適用します。デフォルトでは、このプロパティは設定されていません。
@Nullable public MessageHeaderInitializer getHeaderInitializer()
public void send(Message<?> message)
SimpMessageHeaderAccessor#DESTINATION_HEADER
が含まれている場合、メッセージは変更なしで送信されます。 宛先ヘッダーがまだ存在しない場合、構成された defaultDestination
にメッセージが送信されるか、構成されていない場合は IllegalStateException
が発生します。
MessageSendingOperations<StringSE>
の send
AbstractMessageSendingTemplate<StringSE>
の send
message
- 送信するメッセージ (非 null
)protected void doSend(StringSE destination, Message<?> message)
AbstractMessageSendingTemplate<StringSE>
の doSend
public void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload) throws MessagingException
SimpMessageSendingOperations
SimpMessageSendingOperations
の convertAndSendToUser
user
- メッセージを受信するユーザー。destination
- メッセージの送信先。payload
- 送信するペイロード MessagingException
public void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, @Nullable MapSE<StringSE,ObjectSE> headers) throws MessagingException
SimpMessageSendingOperations
デフォルトでは、ヘッダーはネイティブヘッダー(STOMP など)として解釈され、結果の Spring Message
の特別なキーに保存されます。実際には、メッセージがアプリケーションを離れると、提供されたヘッダーがメッセージに含まれ、宛先(STOMP クライアントまたはブローカーなど)に配信されます。
マップにすでにキー "nativeHeaders"
が含まれているか、SimpMessageHeaderAccessor
で準備されている場合、ヘッダーが直接使用されます。一般的な期待されるケースは、コンテンツ型(メッセージ変換に影響を与えるため)とネイティブヘッダーの提供です。これは次のように実行できます。
SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(); accessor.setContentType(MimeTypeUtils.TEXT_PLAIN); accessor.setNativeHeader("foo", "bar"); accessor.setLeaveMutable(true); MessageHeaders headers = accessor.getMessageHeaders(); messagingTemplate.convertAndSendToUser(user, destination, payload, headers);
注意 : MessageHeaders
が上記の例のように可変である場合、このインターフェースの実装は、通知を受け取り、同じインスタンスのヘッダーを(コピーまたは再作成するのではなく)更新してから、最終メッセージを送信する前に不変に設定する必要があります。
SimpMessageSendingOperations
の convertAndSendToUser
user
- メッセージを受信するユーザー (null
であってはなりません)destination
- メッセージの送信先 (null
であってはなりません)payload
- 送信するペイロード (null
の場合があります)headers
- メッセージヘッダー (null
の場合があります)MessagingException
public void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, @Nullable MessagePostProcessor postProcessor) throws MessagingException
SimpMessageSendingOperations
SimpMessageSendingOperations
の convertAndSendToUser
user
- メッセージを受信するユーザー (null
であってはなりません)destination
- メッセージの送信先 (null
であってはなりません)payload
- 送信するペイロード (null
の場合があります)postProcessor
- 作成されたメッセージを後処理または変更する postProcessorMessagingException
public void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, @Nullable MapSE<StringSE,ObjectSE> headers, @Nullable MessagePostProcessor postProcessor) throws MessagingException
SimpMessageSendingOperations
入力ヘッダーに関する重要な注意事項については、MessageSendingOperations.convertAndSend(Object, Object, java.util.Map)
を参照してください。
SimpMessageSendingOperations
の convertAndSendToUser
user
- メッセージを受信するユーザー destination
- メッセージの送信先 payload
- 送信するペイロード headers
- メッセージヘッダー postProcessor
- 作成されたメッセージを後処理または変更する postProcessorMessagingException
protected MapSE<StringSE,ObjectSE> processHeadersToSend(@Nullable MapSE<StringSE,ObjectSE> headers)
NATIVE_HEADERS NATIVE_HEADERS NATIVE_HEADERS
に配置します。入力ヘッダーマップを、宛先に送信されるヘッダーとして効果的に処理します。 ただし、指定されたヘッダーにすでにキー NATIVE_HEADERS NATIVE_HEADERS
が含まれている場合、同じヘッダーインスタンスが変更なしで返されます。
また、指定されたヘッダーが MessageHeaderAccessor.getMessageHeaders()
で準備および取得された場合、同じヘッダーインスタンスも変更なしで返されます。
AbstractMessageSendingTemplate<StringSE>
の processHeadersToSend
headers
- 送信するヘッダー (または、存在しない場合は null
)null
)