# Wterm **コンポーネント機能**:xterm.js を基に実装されたWeb端末コンポーネント。ブラウザ内にWebSocketを通じてバックエンドとやり取り可能な端末インターフェースを埋め込むことができます。端末サイズの自動調整、ハートビートによる接続維持、入出力データの送受信などの機能をサポートしています。 **タイプ**:通常コンポーネント **親コンポーネント**:`bricks.JsWidget` ## 初期化パラメータ - `ws_url` (String, 必須) WebSocket接続用のURL。バックエンドの端末サービスとの通信を確立するために使用します。 - `ping_timeout` (Number, 省略可能, デフォルト値: 19) ハートビートの間隔(秒単位)。定期的にサーバーへハートビートメッセージを送信し、接続を維持するために使用します。 > その他の `JsWidget` から継承可能な一般的なオプション(レイアウト、スタイルなど)も適用されます。 ## 主要なイベント - `domon` コンポーネントがDOMにマウントされたときに発火。自動的に `send_term_size()` を呼び出し、現在の端末サイズをサーバーに送信します。 - `domoff` コンポーネントがDOMから削除されたときに発火。WebSocket接続の切断や端末インスタンスの破棄など、リソースのクリーンアップ処理を実行します。 - `element_resize` コンポーネントを含む要素のサイズが変更されたときに発火。端末表示領域の調整およびサイズの再適応(`FitAddon` 経由)を行います。 - `terminal_input`(暗黙のイベント) ユーザーが端末に入力をした際、`term.onData` によってトリガーされ、入力内容をWebSocketを通じてサーバーに送信します。 - `terminal_resize` 端末の行数・列数が変更されたときに発火(`term.onResize` で監視)。自動的に `send_term_size()` を呼び出して、最新のサイズ情報をサーバーに同期します。 - `websocket_message` WebSocketメッセージを受信した際、データの種類に応じて処理を行います: - `data`: 受信内容を端末画面に書き込みます。 - `heartbeat`: ハートビート応答。接続が正常であることを示します。 - その他: デバッグ用にログを出力します。 - `websocket_open / close / error` WebSocketのライフサイクルイベント。それぞれ接続確立時、切断時、エラー発生時に処理を行い、リソースが正しく解放されるよう保証します。