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, sendvoid convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload) throws MessagingException
user - メッセージを受信するユーザー。destination - メッセージの送信先。payload - 送信するペイロード MessagingExceptionvoid 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 の場合があります)MessagingExceptionvoid convertAndSendToUser(StringSE user, StringSE destination, ObjectSE payload, MessagePostProcessor postProcessor) throws MessagingException
user - メッセージを受信するユーザー (null であってはなりません)destination - メッセージの送信先 (null であってはなりません)payload - 送信するペイロード (null の場合があります)postProcessor - 作成されたメッセージを後処理または変更するための postProcessorMessagingExceptionvoid 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