public interface SimpMessageSendingOperations extends MessageSendingOperations<StringSE>
MessageSendingOperations
の特殊化。 ユーザー宛先の詳細については、UserDestinationResolver
を参照してください。
一般に、ユーザーは WebSocket セッションで認証されたユーザーであると予想されます(または、拡張により、セッションを開始したハンドシェイクリクエストで認証されたユーザー)。ただし、セッションが認証されていない場合は、ユーザー名の代わりにセッション ID(わかっている場合)を渡すこともできます。ただし、そのシナリオでは、sessionId
ヘッダーが適切に設定されていることを確認して、ヘッダーを受け入れるオーバーロードメソッドの 1 つを使用する必要があることに注意してください。
修飾子と型 | メソッドと説明 |
---|---|
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) 指定されたユーザーにメッセージを送信します。 |
convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, send, send
void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload) throws MessagingException
user
- メッセージを受信するユーザー。destination
- メッセージの送信先。payload
- 送信するペイロード MessagingException
void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, MapSE<StringSE,ObjectSE> headers) throws MessagingException
デフォルトでは、ヘッダーはネイティブヘッダー(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
が上記の例のように可変である場合、このインターフェースの実装は、通知を受け取り、同じインスタンスのヘッダーを(コピーまたは再作成するのではなく)更新してから、最終メッセージを送信する前に不変に設定する必要があります。
user
- メッセージを受信するユーザー (null
であってはなりません)destination
- メッセージの送信先 (null
であってはなりません)payload
- 送信するペイロード (null
の場合があります)headers
- メッセージヘッダー (null
の場合があります)MessagingException
void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, MessagePostProcessor postProcessor) throws MessagingException
user
- メッセージを受信するユーザー (null
であってはなりません)destination
- メッセージの送信先 (null
であってはなりません)payload
- 送信するペイロード (null
の場合があります)postProcessor
- 作成されたメッセージを後処理または変更するための postProcessorMessagingException
void convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, @Nullable MapSE<StringSE,ObjectSE> headers, @Nullable MessagePostProcessor postProcessor) throws MessagingException
入力ヘッダーに関する重要な注意事項については、MessageSendingOperations.convertAndSend(Object, Object, java.util.Map)
を参照してください。
user
- メッセージを受信するユーザー destination
- メッセージの送信先 payload
- 送信するペイロード headers
- メッセージヘッダー postProcessor
- 作成されたメッセージを後処理または変更するための postProcessorMessagingException