Webブラウザにssh端末クライアントを実装したい。Rubyでssh接続用のサーバーを実装する必要があります。net/ssh ライブラリはありますが、vim やミッドナイト コマンダーなどのフルスクリーン プログラムの処理方法がわかりません。
1 に答える
3
あなたの質問を再解析してみましょう: Web ブラウザーで SSH コンソール セッションをエミュレートしようとしています。ほとんどのコマンドに対して単純なコンソール入出力を実装しているように見えますが、「vim」や真夜中の司令官などのフルスクリーン コマンドを試すと、ゴミが表示されるようです。
あなたが見ている問題は、UN*X マシンが端末でフルスクリーンのコンソール出力を処理する方法に関連しています。フルスクリーン コンソール アプリケーションは、terminfo/termcap ライブラリを参照して、画面のクリア、行の削除、行の挿入、特定のポイントへのカーソルの配置などに必要なエスケープ シーケンスを決定します。表示されているのは、これらの生の出力です。おそらくANSIベースのデフォルトの端末タイプに表示されるエスケープシーケンス。
問題を解決するには、次のことを行う必要があります。
- コンソールアプリがエミュレートしている端末タイプを決定します-または、それを決定的なものに強制することができます。
- termcap/terminfo データベースを参照して、端末タイプのエスケープ シーケンスをデコードします。
- Web ブラウザー アプリに端末機能を実装します。
ブラウザアプリの実装に使用している技術スタックによっては、この問題を解決するために他の人が開発した可能性のあるライブラリを見つけることができる場合があります。
于 2012-05-24T20:32:34.273 に答える