パッケージ jakarta.faces.component

クラス UIWebsocket

実装済みのインターフェース一覧:
ClientBehaviorHolderPartialStateHolderStateHolderTransientStateHolderComponentSystemEventListenerFacesListenerSystemEventListenerHolderEventListenerSE

public class UIWebsocket extends UIComponentBase implements ClientBehaviorHolder

<f:websocket> タグは、クライアント側で一方向(サーバーからクライアント)の Websocket ベースのプッシュ接続を開きます。これは、@Push アノテーションを介して CDI/ コンテナー管理アーティファクトに注入された PushContext インターフェースを介してサーバー側から到達できます。

デフォルトでは、rendererType プロパティを "jakarta.faces.Websocket" に設定する必要があります。この値は、setRendererType() メソッドを呼び出すことで変更できます。

詳しい使用方法については、@Push javadoc を参照してください。

導入:
2.3
関連事項:
  • フィールドの詳細

  • コンストラクターの詳細

    • UIWebsocket

      public UIWebsocket()

      デフォルトのプロパティ値で新しい UIWebsocket インスタンスを作成します。

      例外:
      IllegalStateExceptionSE - Websocket エンドポイントが有効になっていない場合。
  • 方法の詳細

    • getFamily

      public StringSE getFamily()

      COMPONENT_FAMILY を返します。

      次で指定:
      クラス UIComponentgetFamily 
      戻り値:
      コンポーネントファミリ(null 以外)。
    • setValueExpression

      public void setValueExpression(StringSE name, ValueExpression binding)

      指定された属性またはプロパティ名がある場合は、その値の計算に使用される ValueExpression を設定します。channel または scope プロパティに ValueExpression が設定されている場合、値に関係なく、不正な引数の例外がスローされます。user プロパティに ValueExpression が設定されていて、null 以外の値が Serializable のインスタンスでない場合は、不正な引数例外をスローします。

      オーバーライド:
      クラス UIComponentsetValueExpression 
      パラメーター:
      name - ValueExpression を設定する属性またはプロパティの名前
      binding - 設定する ValueExpression、または現在設定されている ValueExpression を削除する null 
      例外:
      IllegalArgumentExceptionSE - name が idparentchannel または scope のいずれかである場合、または name が user であり、null 以外の値が Serializable のインスタンスではない場合。
      NullPointerExceptionSE - name が null の場合。
    • getEventNames

      public CollectionSE<StringSE> getEventNames()

      すべてのクライアント動作イベント名が受け入れ可能であることを示す、Collection#contains() 呼び出しで true を返す、null 以外の空の変更不可能な Collection を返します。

      次で指定:
      インターフェース ClientBehaviorHolder 内の getEventNames 
      オーバーライド:
      クラス UIComponentBasegetEventNames 
      戻り値:
      イベント名のコレクション。
    • getChannel

      public StringSE getChannel()
      WebSocket チャネルの名前を返します。
      戻り値:
      WebSocket チャネルの名前。
    • setChannel

      public void setChannel(StringSE channel)
      WebSocket チャネルの名前を設定します。これは Jakarta Expression Language 式ではなく、英数字、ハイフン、アンダースコア、ピリオドのみを含むことができます。同じチャネルで開いているすべての WebSocket は、サーバーから同じプッシュメッセージを受信します。
      パラメーター:
      channel - WebSocket チャネルの名前。
      例外:
      IllegalArgumentExceptionSE - 値が有効なチャネル名を表していない場合。
    • getScope

      public StringSE getScope()
      WebSocket チャネルのスコープを返します。
      戻り値:
      WebSocket チャネルのスコープ。
    • setScope

      public void setScope(StringSE scope)
      WebSocket チャネルのスコープを設定します。Jakarta Expression Language 式ではない可能性があり、許可される値は applicationsessionview であり、大文字と小文字は区別されません。値が application の場合、アプリケーション全体で同じ名前のすべてのチャネルが同じプッシュメッセージを受信します。値が session の場合、現在のユーザーセッションで同じ名前のチャネルのみが同じプッシュメッセージを受信します。値が view の場合、現在のビューのチャネルのみがプッシュメッセージを受信します。デフォルトのスコープは application です。user 属性が指定されている場合、デフォルトのスコープは session です。
      パラメーター:
      scope - WebSocket チャネルのスコープ。
    • getUser

      public SerializableSE getUser()
      WebSocket チャネルのユーザー ID を返します。
      戻り値:
      WebSocket チャネルのユーザー ID。
    • setUser

      public void setUser(SerializableSE user)
      WebSocket チャネルのユーザー識別子を設定して、ユーザーをターゲットとしたプッシュメッセージを送信できるようにします。同じチャネルとユーザーで開いているすべての WebSocket は、サーバーから同じプッシュメッセージを受信します。Serializable を実装する必要があり、メモリフットプリントが小さいことが望ましい。提案: #{request.remoteUser} または #{someLoggedInUser.id} を使用してください。
      パラメーター:
      user - WebSocket チャネルのユーザー ID。
    • getOnopen

      public StringSE getOnopen()
      WebSocket が開かれたときに呼び出される JavaScript イベントハンドラー関数を返します。
      戻り値:
      WebSocket が開かれたときに呼び出される JavaScript イベントハンドラー関数。
    • setOnopen

      public void setOnopen(StringSE onopen)
      WebSocket が開かれたときに呼び出される JavaScript イベントハンドラー関数を設定します。この関数は、チャネル名という 1 つの引数で呼び出されます。
      パラメーター:
      onopen - WebSocket が開かれたときに呼び出される JavaScript イベントハンドラー関数。
    • getOnmessage

      public StringSE getOnmessage()
      サーバーからプッシュメッセージを受信したときに呼び出される JavaScript イベントハンドラー関数を返します。
      戻り値:
      サーバーからプッシュメッセージを受信したときに呼び出される JavaScript イベントハンドラー関数。
    • setOnmessage

      public void setOnmessage(StringSE onmessage)
      サーバーからプッシュメッセージを受信したときに呼び出される JavaScript イベントハンドラー関数を設定します。この関数は、プッシュメッセージ、チャネル名、生の MessageEvent 自体の 3 つの引数で呼び出されます。
      パラメーター:
      onmessage - サーバーからプッシュメッセージを受信したときに呼び出される JavaScript イベントハンドラー関数。
    • getOnerror

      public StringSE getOnerror()
      接続エラーが発生し、websocket が再接続を試みるときに呼び出される JavaScript イベントハンドラー関数を返します。
      戻り値:
      接続エラーが発生し、websocket が再接続を試みるときに呼び出される JavaScript イベントハンドラー関数。
      導入:
      4.0
    • setOnerror

      public void setOnerror(StringSE onerror)
      接続エラーが発生し、websocket が再接続を試みるときに呼び出される JavaScript イベントハンドラー関数を設定します。この関数は、エラー理由コード、チャネル名、生の CloseEvent 自体の 3 つの引数で呼び出されます。これは、websocket の最終クローズがエラーによって引き起こされた場合でも、呼び出されないことに注意してください。すべての終了コードの詳細なリストについては、RFC6455 セクション 7.4.1 および CloseReason.CloseCodes API も参照してください。
      パラメーター:
      onerror - 再接続エラーが発生したときに呼び出される JavaScript イベントハンドラー関数。
      導入:
      4.0
    • getOnclose

      public StringSE getOnclose()
      Websocket が閉じられたときに呼び出され、再接続を試行しない JavaScript イベントハンドラー関数を返します。
      戻り値:
      Websocket が閉じられたときに呼び出され、再接続を試行しない JavaScript イベントハンドラー関数。
    • setOnclose

      public void setOnclose(StringSE onclose)
      Websocket が閉じられたときに呼び出され、再接続を試行しない JavaScript イベントハンドラー関数を設定します。この関数は、クローズ理由コード、チャネル名、生の CloseEvent 自体の 3 つの引数で呼び出されます。これは、クローズがエラーによって引き起こされた場合にも呼び出されることに注意してください。また、実際の接続エラーが発生した場合は、クローズの理由コードと、どのエラーが発生したか (つまり、コードが 1000 または 1008 ではない場合) を調べることができます。すべての終了コードの詳細なリストについては、RFC6455 セクション 7.4.1 および CloseReason.CloseCodes API も参照してください。
      パラメーター:
      onclose - WebSocket が閉じられたときに呼び出される JavaScript イベントハンドラー関数。
    • isConnected

      public boolean isConnected()
      WebSocket を(自動)接続するかどうかを返します。
      戻り値:
      WebSocket を(自動)接続するかどうか。
    • setConnected

      public void setConnected(boolean connected)
      WebSocket を (自動) 接続するかどうかを設定します。デフォルトは true です。Websocket プッシュ接続を開くか閉じるかは、JavaScript 命令として解釈されます。この属性は、すべての ajax リクエストで再評価されることに注意してください。明示的に false に設定してから、 faces.push.open("channelName") および faces.push.close("channelName") で JavaScript を手動で制御することもできます。
      パラメーター:
      connected - WebSocket を(自動)接続するかどうか。