41 lines
2.7 KiB
Markdown
41 lines
2.7 KiB
Markdown
# 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のライフサイクルイベント。それぞれ接続確立時、切断時、エラー発生時に処理を行い、リソースが正しく解放されるよう保証します。 |