誰かがビデオ ゲームをプレイしている間、バックグラウンド (または 2 番目の画面) で開いてしまう Web サイトを作成することを考えています。ブラウザーが現在フォーカスされていない場合でも、境界付きキー入力を Web サイトに渡すにはどうすればよいですか? 私はJavaアプレットを避けたいのですが、それが唯一の方法であればそれを行うことができます. ブラウザ プラグインも機能する可能性がありますが、ユーザーによるインストールを避けて、できるだけシンプルにすることを目的としています。何かご意見は?
2 に答える
0
ページに実際にフォーカスがある場合にのみ、その情報が必要になると思います。
- HTML ドキュメントのイベントにアタッチして
onactivate
、AJAX 呼び出しを実行できます。div
出力に従って a または何かのコンテンツを設定します。 - Web ソケットを使用して、バックグラウンドでサーバーからクライアントにコンテンツを送信します。
これを機能させるには、最初にデータをサーバーに送信する必要があります。
于 2014-03-29T21:49:25.523 に答える
0
これを実現する 1 つの方法は、WebSockets
(基本的な使用例) を使用することです。
Websocket は、ブラウザーとサーバー間のメッセージング チャネルを提供します。たとえば、ゲームはREST
、サーバーでホストされているサービスを呼び出して、ユーザーのブラウザーが接続されている WebSocket にメッセージを送信するようにトリガーすることができます。
基本的な手順は次のようになります。
- ユーザー 1 が Web ページにログインし、websocket がサーバー A に接続します。
- ユーザー 1 がゲームを起動
- ゲームは、アクションのためにサーバー A の REST サービスに http 要求を送信します。
<server_address>/move/east
- サーバーはユーザー 1 の Websocket を識別し、「東に移動」コマンドを送信します。
- ユーザー 1 のブラウザーが websocket 上のメッセージを取得し、ページを適切に更新します。
これにより、ゲームに焦点が当てられることはありませんが、ゲームとユーザーのブラウザー セッションとの間で通信するための比較的適切な方法が得られます。これで最も難しい部分は、ユーザーのゲーム セッションをユーザーのブラウザー セッションにバインドするために使用する識別子であると思いますが、これを行うための何らかのログイン メカニズムが既にある可能性があります。
最近のほとんどのブラウザーでは websocket が適切にサポートされているため、プラグインやサードパーティの拡張機能は必要ありませんが、サーバー側のコードを少し記述する必要があります。
于 2014-03-29T21:54:50.963 に答える