web-dev-qa-db-ja.com

X11 ssh転送用のHTMLクライアント?

これが正しい場所かどうかは完全にはわかりませんが、ここに行きます。

X11を使用してsshでGUIにアクセスし、それらを表示できることを理解しています。サーバーがgnomeなどの完全なGUIシステムを実行/インストールしている必要はありません。

私の最終目標は、コーディングセッションをオンラインで「ブロードキャスト」して、人々がオンラインで視聴できるようにすることです。

現在、制限付きtmuxセッションが基本的に常に自分の個人tmuxコーディングセッションウィンドウをミラーリングするように設定しています。したがって、制限付きアカウントのサーバーにSSHで接続する場合は、制限付きセッションにホップして、私のコーディングに従うことができます。

しかし、私は人々がブラウザからこれを見ることができるようにしたいです。私のサーバーで実行されているx11のターミナルエミュレーターをtmuxセッションに接続しておくのが最善の方法だと思います。そして、どういうわけかブラウザーにそのターミナルエミュレーターを表示させますか?

私はこのドメインにあまり慣れていないので、これが可能かどうか誰かが知っていますか?それとも私が取るべきより良いアプローチがありますか?

Sshを実行するリモートヘッドレスサーバーで完全にコード化していることに注意してください。

7
Justin L.

それは本当に正確に何にしたいかに依存します。

複数の人があなたのコンピュータを見ているときにあなたがしていることを監視したい場合、VNCを介してXセッションをエクスポートすることでそれができるはずです。別の「ヘッドレス」サーバーを実行する(グラフィカルカードメモリではなくRAMフレームバッファーにレンダリングする)か、x11vncを使用して現在のセッションをエクスポートすることもできます。x11vncの場合(もちろんヘッドレスサーバーを使用している場合でも)-viewonlyオプションを使用すると、他のユーザーが自分の操作に干渉できないようにすることができます。たとえば、WebブラウザーからVNCサーバーに接続するための解決策があるようです- noVNC または realvnc

ビデオ(およびオプションでオーディオ)をブロードキャストして、「特別な」ソフトウェアなしで表示したり、後で再生したりできるようにするには、たとえば、X11データを取得できるffmpegを使用できます(x11grabで検索docs)そしてそれをビデオに変えます。もちろん、コメントする音声ストリームを追加できます。その後、出力をストリーミングできます。形式やコーデックによっては、ブラウザで直接見ることができる場合があります。ただし、学界にいない限り(またはこれを非営利の非営利活動として作成している場合を除き)、一部のコーデックが特許の問題により法的に使用できない可能性があります。

5
peterph

これまでにスクリーンキャストは行っていませんが、あなたの場合、2つの可能性があります。

ビデオベースのライブスクリーンキャスト

これは実際にはビデオストリームを使用します。利点は、複数のプログラムやグラフィカルなプログラムを使用してXセッション全体を表示できることと、コーディングしているものに関するコメントのように、オーディオを同じチャネルに含めることができることです。欠点は、ターミナルセッションを表示するだけの場合、帯域幅の要件と画質の両方に関してビデオコーデックが理想的ではない可能性があることです。

  • その行に沿った何かが BigBlueButton に含まれています。より多くの機能を備えており、ユースケースにとってはやり過ぎかもしれませんが、学習環境としては一見の価値があります。それが何をしているのかを見るために demos をチェックアウトしてください。すぐに使用できるように、 BigBlueButtonVM があります。
  • それ以外の場合、ffmpegにそれを実行させる方法があるようです( HTML5へのリアルタイムスクリーンキャスト<video> ... および ffmpegを使用したライブスクリーンキャスト を参照)。
  • ストリーミングサービスについて説明したように、 WebcamStudio を使用すると、デスクトップを共有し、フラッシュなどを介してWebカメラを取得するサービスのために他のビデオソースとミックスできます。

Web端末エミュレータ

これは、現在の設定とほぼ同じように機能します。基本的な考え方は、ブラウザにxtermのようなものを置くことです。このカテゴリでは、いくつかの解決策を見つけました。

  • GateOne は、おそらく現在のセットアップで使用できるsshクライアントを備えています。
  • shellinabox はサーバー上の特定のプログラムにバインドされています。 「tmuxプレーヤー」になるシェルの代わりに
2
zpea

Xpra には、開発の初期段階ですが、html5クライアントが非常に優れています。私は個人的にはX11フォワーディングの代替として使用します。X11セッションを生成し、あなたが説明したように単一のアプリケーションしか表示しないからです。また、既存のセッションに接続できる「シャドウ」オプションもあります。

2
muffel

私は、ペアのプログラミング製品/メソッドを調べて、ここであなたのニーズに何が適しているかを調べたくなると思います。他の人が述べたように、X11vncを使用できることは知っています。 2人以上の人にセッションを見てもらうつもりで、どれだけうまくスケールできるかわかりません。

フロビット

このサービス Floobits があります。少なくとも最初は自由に見えますが、詳細はわかりません。

抜粋

現在、Sublime Text、Vim、Emacsをサポートしています。また、ブラウザベースのエディタもあります。

これらのプラグインを作成して、リアルタイムのコラボレーションにはコードの共有以上のものが必要であることを学びました。シェルを共有したかったので、Floottyを作成しました。入力時にテストサーバーに変更を送信するため、ヘッドレスの差分シッパーを作成しました。ボイスチャットと画面共有をしたかったので、ウェブベースのエディターにGoogle+ハングアウトを追加しました。

サインアップして無料でお試しください。

Googleハングアウト

私はおそらくこのルートに行くでしょう。 Googleハングアウトを作成して、他の人が「監視」している間、セッションのドライバーになることができます。非常に適切にスケーリングし、人々のファイアウォールを通過し、ツールを共有し、全体的に優れたエクスペリエンスを提供するという点で、技術的なハードルのほとんどを解決しているはずです。

唯一の欠点は、他の人がGoogle+アカウントを持っている必要があるということです。しかし、それは取引ブレーカーになるはずです。

別のオプション?

最後に、このStackOverflowのQ&Aというタイトルの http://www.google.com/+/learnmore/hangouts/ を行います。この質問はよくあるように話題から外れていますが、これらの種類の質問を組み合わせてさまざまなテクノロジーを評価することにより、特定の問題のニーズを解決する方法には多くの優れたリードがあります。

0
slm