public abstract class Endpoint extends ObjectSE
onOpen
メソッドを実装することで、プログラムエンドポイントは Session
オブジェクトにアクセスできます。開発者は、MessageHandler
実装を追加して、受信 WebSocket メッセージをインターセプトすることができます。WebSocket エンドポイントの各インスタンスは、アクティブな接続ごとに一度に複数のスレッドによって呼び出されないことが保証されています。クライアントエンドポイントとしてデプロイされた場合、サーバーへの単一接続のために 1 回インスタンス化されます。
サーバーエンドポイントとしてデプロイされると、実装は javax.websocket.server.ServerEndpointConfig.Configurator#getEndpointInstance
メソッドを使用して、新しいクライアント接続ごとに使用するエンドポイントインスタンスを取得します。開発者がデフォルトの javax.websocket.server.ServerEndpointConfig.Configurator
を使用する場合、アクティブなクライアント接続ごとに正確に 1 つのエンドポイントインスタンスが存在します。この典型的なケースでは、Endpoint のメソッドを実装 / オーバーライドするときに、開発者は各エンドポイントインスタンスを一度に呼び出すスレッドが最大で 1 つあることが保証されます。
たとえば、複数のクライアント接続に単一のエンドポイントインスタンスを使用するなど、エンドポイントインスタンス作成のデフォルトポリシーを上書きするカスタム javax.websocket.server.ServerEndpointConfig.Configurator
を開発者が提供する場合、開発者は同時に実行できるコードを記述する必要がある場合があります。
これは、受信テキストメッセージを送信者にエコーバックする単純なエンドポイントの例です。
public class EchoServer extends Endpoint {
public void onOpen(Session session, EndpointConfig config) {
final RemoteEndpoint remote = session.getBasicRemote();
session.addMessageHandler(String.class, new MessageHandler.Whole<String<() {
public void onMessage(String text) {
try {
remote.sendString("Got your message (" + text + "). Thanks !");
} catch (IOException ioe) {
// handle send failure here
}
}
});
}
}
コンストラクターと説明 |
---|
Endpoint() |
修飾子と型 | メソッドと説明 |
---|---|
void | onClose(Session session, CloseReason closeReason) このメソッドは、リモートピアが閉じられているセッションの直前に呼び出されます。 |
void | onError(Session session, ThrowableSE thr) 開発者は、Web ソケットセッションが Web ソケットプロトコルでモデル化されていないある種のエラーを作成するときに、このメソッドを実装できます。 |
abstract void | onOpen(Session session, EndpointConfig config) 開発者はこのメソッドを実装して、新しい会話が始まったときに通知を受けるようにする必要があります。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public abstract void onOpen(Session session, EndpointConfig config)
session
- アクティブ化されたばかりのセッション。config
- このエンドポイントの構成に使用される構成。public void onClose(Session session, CloseReason closeReason)
session
- 間もなく終了するセッション。closeReason
- セッションが閉じられた理由。public void onError(Session session, ThrowableSE thr)
このメソッドが(現在のところ)処理するように定義されている例外には、いくつかのカテゴリがあります。
SessionException
としてモデル化されています DecodeException
としてモデル化されています session
- エラーが発生したときに使用中のセッション。thr
- 問題を表すスロー可能オブジェクト。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.