public abstract class StompClientSupport extends ObjectSE
サブクラスは、任意のライブラリを使用して WebSocket または TCP 経由で接続できます。新しい接続を作成するとき、サブクラスは TcpConnectionHandler
を実装する DefaultStompSession
のインスタンスを作成できます。このインスタンスのライフサイクルメソッドは、サブクラスが呼び出す必要があります。
実際、TcpConnectionHandler
と TcpConnection
は、StompEncoder
と StompDecoder
を使用して STOMP メッセージをエンコードおよびデコードするときに、サブクラスが適応しなければならない契約です。
コンストラクターと説明 |
---|
StompClientSupport() |
修飾子と型 | メソッドと説明 |
---|---|
protected ConnectionHandlingStompSession | createSession(StompHeaders connectHeaders, StompSessionHandler handler) 新しいセッションを作成および構成するためのファクトリメソッド。 |
long[] | getDefaultHeartbeat() 構成されたデフォルトのハートビート値を返します( null は決してしないでください)。 |
MessageConverter | getMessageConverter() 設定された MessageConverter を返します。 |
long | getReceiptTimeLimit() 設定された受領期限を返します。 |
TaskScheduler | getTaskScheduler() 構成された TaskScheduler。 |
boolean | isDefaultHeartbeatEnabled() ハートビートが有効になっているかどうかを確認します。 |
protected StompHeaders | processConnectHeaders(StompHeaders connectHeaders) StompHeaders をさらに初期化します。たとえば、必要に応じてハートビートヘッダーを設定します。 |
void | setDefaultHeartbeat(long[] heartbeat) STOMP CONNECT フレームの「ハートビート」ヘッダーのデフォルト値を設定します。 |
void | setMessageConverter(MessageConverter messageConverter) オブジェクト型と「コンテンツ型」ヘッダーに基づいて、受信メッセージと発信メッセージのペイロードを byte[] との間で変換するために使用する MessageConverter を設定します。 |
void | setReceiptTimeLimit(long receiptTimeLimit) レシートが期限切れと見なされるまでのミリ秒数を設定します。 |
void | setTaskScheduler(TaskScheduler taskScheduler) ハートビートと受信追跡に使用するスケジューラを構成します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setMessageConverter(MessageConverter messageConverter)
byte[]
との間で変換するために使用する MessageConverter
を設定します。 デフォルトでは、SimpleMessageConverter
が構成されています。
messageConverter
- 使用するメッセージコンバーター public MessageConverter getMessageConverter()
MessageConverter
を返します。public void setTaskScheduler(@Nullable TaskScheduler taskScheduler)
注意 : 一部のトランスポートには、ハートビートを処理するためのサポートが組み込まれているため、TaskScheduler は必要ありません。ただし、領収書は必要に応じて、TaskScheduler を構成する必要があります。
デフォルトでは、これは設定されていません。
@Nullable public TaskScheduler getTaskScheduler()
public void setDefaultHeartbeat(long[] heartbeat)
デフォルトでは、これは "10000,10000" に設定されていますが、サブクラスはそのデフォルトをオーバーライドでき、たとえば、TaskScheduler を最初に構成する必要がある場合は、"0,0" に設定できます。
注意 : ハートビートは、非アクティブの場合、つまり他のメッセージが送信されない場合にのみ送信されます。ブローカー以外の宛先を持つメッセージはアクティビティを表しますが、実際にはブローカーに転送されないため、これは外部ブローカーを使用するときに問題を引き起こす可能性があります。その場合、StompBrokerRelayRegistration
を介して `TaskScheduler` を構成できます。これにより、ブローカー以外の宛先のメッセージのみが送信された場合にも、ハートビートがブローカーに転送されます。
heartbeat
- CONNECT「ハートビート」ヘッダーの値 public long[] getDefaultHeartbeat()
null
は決してしないでください)。public boolean isDefaultHeartbeatEnabled()
defaultHeartbeat
が "0,0" に設定されている場合は false
を返し、それ以外の場合は true
を返します。
public void setReceiptTimeLimit(long receiptTimeLimit)
デフォルトでは 15,000 (15 秒に設定されています)。
public long getReceiptTimeLimit()
protected ConnectionHandlingStompSession createSession(@Nullable StompHeaders connectHeaders, StompSessionHandler handler)
connectHeaders
- STOMP CONNECT フレームのヘッダー handler
- STOMP セッションのハンドラー protected StompHeaders processConnectHeaders(@Nullable StompHeaders connectHeaders)
connectHeaders
- 変更するヘッダー