T
- 変換される型(エンコーダーの場合)または (デコーダ用)M
- WebSocket メッセージ型 ( String
SE または ByteBuffer
SE )public abstract class ConvertingEncoderDecoderSupport<T,M> extends ObjectSE
Encoder
EE や Decoder
EE を実装するために使用できる基本クラス。Spring ConversionService
に委譲するエンコードおよびデコードメソッドの実装を提供します。 デフォルトでは、このクラスは active ApplicationContext
に 'webSocketConversionService'
という名前で登録されている ConversionService
を検索します。これは、サーブレットコンテナー環境のクライアントエンドポイントとサーバーエンドポイントの両方で正常に機能します。サーブレットコンテナーで実行されていない場合、サブクラスは getConversionService()
メソッドをオーバーライドして、代替ルックアップ戦略を提供する必要があります。
サブクラスはこのクラスを継承でき、Encoder
EE および Decoder
EE の一方または両方を実装する必要もあります。便宜上、ConvertingEncoderDecoderSupport.BinaryEncoder
、ConvertingEncoderDecoderSupport.BinaryDecoder
、ConvertingEncoderDecoderSupport.TextEncoder
および ConvertingEncoderDecoderSupport.TextDecoder
サブクラスが提供されています。
JSR-356 ではエンコーダー / デコーダーの型による登録のみが許可されているため、このクラスのインスタンスは WebSocket ランタイムによって管理され、Spring Bean として登録する必要はありません。ただし、@Autowire
を介して Spring で管理された依存関係を注入できます。
type
と String
または ByteBuffer
の間で変換するコンバーターを登録する必要があります。
修飾子と型 | クラスと説明 |
---|---|
static class | ConvertingEncoderDecoderSupport.BinaryDecoder<T> Spring の変換サービスに委譲するバイナリ javax.websocket.Encoder EE。 |
static class | ConvertingEncoderDecoderSupport.BinaryEncoder<T> Spring の変換サービスに委譲するバイナリ javax.websocket.Encoder EE。 |
static class | ConvertingEncoderDecoderSupport.TextDecoder<T> Spring の変換サービスに委譲するテキスト javax.websocket.Encoder EE。 |
static class | ConvertingEncoderDecoderSupport.TextEncoder<T> Spring の変換サービスに委譲するテキスト javax.websocket.Encoder EE。 |
コンストラクターと説明 |
---|
ConvertingEncoderDecoderSupport() |
修飾子と型 | メソッドと説明 |
---|---|
T | decode(M message) メッセージをオブジェクトにデコードします。 |
void | destroy() エンコーダー / デコーダーを破棄するために呼び出されます。 |
M | encode(T object) オブジェクトをメッセージにエンコードします。 |
protected ApplicationContext | getApplicationContext() アクティブな ApplicationContext を返します。 |
protected ConversionService | getConversionService() ConversionService を取得するために使用される戦略方法。 |
protected TypeDescriptor | getMessageType() WebSocket メッセージ型を返します。 |
protected TypeDescriptor | getType() 変換される型を返します。 |
void | init(EndpointConfigEE config) エンコーダー / デコーダーを初期化するために呼び出されます。 |
boolean | willDecode(M bytes) 特定のメッセージをデコードできるかどうかを判断します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void init(EndpointConfigEE config)
public void destroy()
protected ConversionService getConversionService()
ConversionService
を取得するために使用される戦略メソッド。デフォルトでは、このメソッドは active ApplicationContext
に 'webSocketConversionService'
という Bean を想定しています。ConversionService
(非 null)@Nullable protected ApplicationContext getApplicationContext()
ApplicationContext
を返します。デフォルトでは、このメソッドは ContextLoader.getCurrentWebApplicationContext()
を介してコンテキストを取得します。これは、ContextLoader
を介してロードされた ApplicationContext を、通常はサーブレットコンテナー環境で見つけます。サーブレットコンテナーで実行しておらず、ContextLoader
を使用していない場合は、このメソッドをオーバーライドする必要があります。ApplicationContext
または null
protected TypeDescriptor getType()
protected TypeDescriptor getMessageType()
@Nullable public M encode(T object) throws EncodeExceptionEE
public boolean willDecode(M bytes)
@Nullable public T decode(M message) throws DecodeExceptionEE