テキストボックス/検索ボックスがあるとしましょう
<input type="search">
次に、カーソルが検索ボックスにフォーカスされている場合にのみサーバーに接続します。
アプリはインターネット全体での使用を目的としており、検索ボックスはすべてのキープレスをリッスンします。
WebSockets は、上記の例のような検索ボックスの適切な実装だと思いますか?
あなたが言っていることから、検索ボックスのオートコンプリート提案、または入力時に検索するようなものを実装したいと思っていると思います。私の経験では、WebSocket はこれらのユース ケースに適しています。
WebSocket は低レイテンシーであるため、結果は非常に高速に返されます。ユーザーからそれほど遠くない高速なバックエンドとサーバーを使用すると、これでネイティブローカルに近いパフォーマンスを得ることができます.
また、WebSocket は実際のトラフィックがある場合にのみ帯域幅を消費するため、多数の検索ボックスを接続してもトラフィック ペナルティを支払う必要はありません。
WebSocket 接続を使用して検索ボックスのオートコンプリート候補を取得するデモ アプリケーションをコーディングしました (Oracle DB バックエンドで 100 万件のレコードを検索します)。デモは現在オンラインではありませんが、https://github.com/tavendo/WebMQDemo/tree/master/web/demo/autocompleteでコードを確認できます。
デモの WebSocket 部分は非常に簡単に実装できます。このデモでは、ブラウザで AutobahnJS を使用します。AutobahnJS は生の WebSocket の上にいくつかの快適な機能を提供し、PubSub + RPC プロトコル (WAMP) を実装します。オートコンプリート データのリクエストなどのコードは非常に単純です (717 行目)。
これを実行するには、crossbar.io サーバーと Oracle DB が必要です。また、crossbar.io プロジェクトの Web サイトは現在作成中です。そのため、現時点ではこれを簡単に実行することはできません。
完全な開示:私は Autobahn プロジェクトと crossbar.io プロジェクトの両方を開始した Tavendo で働いています。どちらも例としてのみ提供されています。使用できる WebSocket 技術は他にもあります。これは私がよく知っていることです。