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, setMessageConvertercloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEconvertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, sendpublic 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
SimpMessageSendingOperationsSimpMessageSendingOperations の convertAndSendToUser user - メッセージを受信するユーザー。destination - メッセージの送信先。payload - 送信するペイロード MessagingExceptionpublic 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 の場合があります)MessagingExceptionpublic void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, @Nullable MessagePostProcessor postProcessor) throws MessagingException
SimpMessageSendingOperationsSimpMessageSendingOperations の convertAndSendToUser user - メッセージを受信するユーザー (null であってはなりません)destination - メッセージの送信先 (null であってはなりません)payload - 送信するペイロード (null の場合があります)postProcessor - 作成されたメッセージを後処理または変更するための postProcessorMessagingExceptionpublic 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 - 作成されたメッセージを後処理または変更するための postProcessorMessagingExceptionprotected 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 )