問題タブ [server-push]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
6170 参照

javascript - jQuery .getJSON()接続を開いたままにして、ページの本文にいる間待機しますか?

私は基本的なプッシュメッセージングシステムを書いています。小さな変更により、正常に動作しなくなりました。説明させてください。私の元のバージョンでは、次のようなドキュメントのコードを入れることができました。

これはうまく機能し、サーバーがnullを返した場合でも接続を開いたままにします(2分のタイムアウトの後)。getJSON関数を無期限に何度も呼び出し続けるだけです。ハッピーパンダ。

ここで、タグの間にコードセグメントを配置する必要があります。$(document).ready()関数へのアクセスはほとんど機能しません。

これは機能します...しばらくの間。その後まもなく、check4Updatesの呼び出しを停止し、無限ループに入り、100%のプロセッサ時間を使用します。

ページが閉じるまでcheck4Updatesが繰り返し呼び出されるように取得しようとしています。私の単純な変更が期待どおりに機能しなくなった理由について誰かが洞察を持っている場合は、私に知らせてください。読んで助けてくれてありがとう。

よろしく、ヴァングエン

0 投票する
5 に答える
1814 参照

architecture - クライアント (デスクトップ アプリ) はデータをプルしますが、サーバー (Web アプリ) はデータをプッシュする必要があります

私はクライアント サーバー アプリケーションを使用しています。サーバーは本質的に ASP .NET Web アプリケーションであり、分散クライアントはデスクトップ アプリケーションです。

クライアントに新しいデータがある場合、クライアントはサーバーからデータを受信する必要があります。現在、これが行われる方法は次のとおりです。クライアントは x 分 (たとえば 2 分) ごとに Web サービスにクエリを実行し続け、クライアントの新しいデータがあるかどうかを確認し続けます。

理想的には、それが機能する方法は、デスクトップ アプリが利用可能になったときに更新を受信することであり、サーバーから取得する必要はありません。代わりに、サーバーはクライアントにプッシュできる必要があります。

ソリューションのアーキテクチャを考えると、Web アプリケーションは同じネットワーク (LAN) 内のデスクトップ アプリケーション (クライアント) にデータをプッシュする必要があります。

0 投票する
2 に答える
505 参照

php - 一度により多くの値のサーバー プッシュを実装する方法は?

複数のサーバープッシュを実装する最良の方法は何ですか?

ユーザーのステータスを更新したいだけなので、定期的にサーバーをポーリングして 1000 ミリ秒程度でステータスを確認し、ページを更新できます。

私が見つけることができるもう1つの方法は、サーバーが30秒ほど待機し、変更があったかどうかを確認し、見つかった場合、サーバーがクライアントに応答をプッシュし、ページを更新してから別のポーリングを行うことです。

しかし、これをどのように実装して、Web サイトで 10 個ほどのことをチェックするのでしょうか? たとえば、誰かが投票したときにstackoverflowに質問の投票を更新させたい場合、私が考えることができる唯一の方法は

サーバーに各質問の投票を求める -> サーバーはページ上のすべての質問の投票で応答します

しかし、どの質問の投票が変更されたかを確認するにはどうすればよいですか? 現在のすべての投票を送信してから、サーバーに値を比較させ、変更されたもののみを返信させることもできますが、30 の値をチェックしながらこれを行うのは非常に効果的ではないと思います。

すべての例の 1 つはFacebookで、ほとんどすべてがサーバー プッシュによって更新されますが、サーバーは何が変更され、何が変更されなかったのかをどのように確認できるでしょうか?

私が見つけたすべてのもの (私の本「Ajax Patterns」を含む) は、1 つの値をポーリングする方法のみを説明していますが、一度に多くの値 (10 以上など) をポーリングする方法は見つかりませんでした。

0 投票する
2 に答える
674 参照

tomcat - Java Servlet で Comets を実装するには、どの方法が最適か

コメッツ パターンを使用するアプリケーションを作成したいと考えています。これは、即時の要求への応答としてだけでなく、サーバーでイベントが発生したときに応答できる要求です。

この目的で使用する最も簡単なアプリケーション サーバーは何ですか?

1) Tomcat とその NIO パッケージ
2) Jetty とその継続
3) またはその他の代替

主な基準は次のとおりだと思います。
- 使いやすさ
- 信頼性
- 速度

0 投票する
5 に答える
479 参照

php - コードをphpからjavascriptに「プッシュ」する

私は現在、数秒ごとに (5) GET リクエストを実行する jquery/js コードを持っており、入ってくる可能性のある新しいデータを探しています。

何か新しいものが入ったかどうかを数秒ごとにチェックするのではなく、新しい投稿利用可能になったときにPHPを「プッシュ」またはjavascriptコードに通知する方法はありますか?

別の例: ユーザーの画像のサイズを変更しています。「サーバーへのアップロード」、「画像のサイズ変更」、「画像の保存」などのメッセージを表示するために、進行中のプロセスに関するリアルタイムのデータをユーザーに表示したいと思います。

このようなことについて何か助けはありますか?

0 投票する
1 に答える
1253 参照

ajax - WebページからこのCometsアプリケーションを呼び出す方法

http://tomcat.apache.org/tomcat-6.0-doc/aio.htmlに示されている2つのクラスを実装しました。これは、Tomcatのcomet実装を使用してメッセンジャーアプリケーションを提供します。

これをWebインターフェイスに接続して、何かを表示するにはどうすればよいですか。

これらが基本的なステップだと思います(詳細はわかりません)。

  1. ChatServletを呼び出してCometEventを(どういうわけか)渡す従来のイベント(ボタンクリックまたはAJAXイベント)を作成する必要があります-おそらくBEGIN
  2. それ以降、READイベントを入力パラメーターとして使用してクライアントに何かを送信するたびに、コードでイベントメソッドを呼び出させます。

以下の2つのクラスをコピーしました。




0 投票する
3 に答える
1558 参照

api - サーバー プッシュ テクノロジ (COMET) の API モデル

サーバー側イベントのサポートを CppCMS に追加する予定です。通信レベルで何をすべきかの技術的な部分を理解しています。クライアントは長いポーリング XmlHTTPRequest を送信し、応答を待ちます。サーバーは接続を受け入れ、サーバー側のイベントが発生してクライアントに応答を送信するまで応答しません。クライアントは手順を繰り返します。

ただし、これはほとんどの Web 開発者にとって「低すぎる」レベルです。イベントの管理方法、接続の管理方法など、多くの質問があります。

私は2つの可能なモデルについて考えました:

  1. 定義されたいくつかの名前付きイベントとサーバー側があります。たとえば、「チャット ルーム 134 番の新しいメッセージ」です。リクエストが受け入れられると、サーバー側アプリケーションはルーム (DB など) 内のメッセージをチェックし、クライアントへの新しいメッセージがない場合は、イベントにサブスクライブして待機します。

    他のクライアントがサーバーにデータを投稿すると、「チャット ルーム 134 番の新しいメッセージ」イベントですべてのアプリケーションに通知し、それらが起動してこれらのメッセージをクライアントに送信します。

    このモデルは依然として「低レベル」モデルのように見えますが、すべての通知メソッドが隠されています。

  2. もう 1 つのオプションは、いくつかの名前付きキューを定義することです。これにより、各クライアントはサーバーへの接続時にそのようなキューを作成し、新しいメッセージを待ちます。あるクライアントが「Chat Room no 134」に新しいメッセージを投稿すると、サーバー側では、この「Chat Room no 134」に接続されているすべてのキューにメッセージがブロードキャストされ、メッセージがクライアントに配信されます。

    しかし、次のような多くの疑問が生じます。

    • 単一ページのレベルでキューとセッション レベルを管理するにはどうすればよいですか?
    • キューを削除してタイムアウトを作成するにはどうすればよいですか?
    • 複数の「ウィンドウ」が同じキューにサブスクライブするとどうなりますか?
  3. サーバー側のイベントとユーザー側のイベントを結び付ける永続オブジェクトをサーバー側に作成します。リダイレクトされた個別の XHR リクエストを介して通信する場合があります。

    そのため、クライアント (JavaScript) はイベントを登録し、ページが再構築されるまで、XHR およびサーバー側でディスパッチされたイベント通知でイベントを待機します。

では、サーバー側のプッシュ テクノロジの背後にある最も一般的で推奨される API モデルは何ですか?

ありがとう

編集:3番目のオプションを追加

0 投票する
2 に答える
1366 参照

ajax - リバースAJAX?データの変更をスクリプトに「プッシュ」できますか?

私のajaxが多いサイトのいくつか(私が構築したサイトではなく、私が訪問したサイト)に特定の自動更新機能があることに気づきました。たとえば、GMailでは、新しいメッセージを受け取った場合、ページをリロードせずに新しいメッセージが表示されます。FacebookブラウザベースのIMクライアントでも同じです。私の知る限り、サーバーとブラウザーのバインディングを処理するJavaアプレットはないので、AJAXと、おそらく私が知らない要素によって行われていると思います。したがって、私の推測では、次の2つの方法のいずれかで実行されます。

  1. javascriptは、サーバー側スクリプトに対して安定した「ping」を実行し、利用可能な更新をチェックします(これにより、これらのページの一部が他の高負荷のページをクロールする理由が説明されます)。また

  2. javascriptはぼんやりと座っており、サーバーサイドスクリプトは実際にブラウザへの更新を「プッシュ」します。しかし、これが可能かどうかはわかりません。まだpingを実行するある種のAJAX関数があると思いますが、それはすべて「更新はありますか?」と尋ねるだけです。サーバースクリプトには、「いいえ」または「質問してよかった」という単純なブール値があります。ただし、この場合、データの変更はスクリプトを直接呼び出す必要があります。これにより、データの変更の準備が整い、ブール関数に変更が加えられます。

それで、それは可能/実行可能/それがどのように機能するのですか?私は次のようなものを想像します:

誰かが電子メール/IM/ DBの更新をサーバーに送信し、サーバーがスクリプトのURLと関連するGET変数を使用してスクリプトを呼び出し、スクリプトが変更を記録して「利用可能な更新」変数を更新し、AJAXが応答を取得します。実際に更新すると、AJAXは通常の「更新ページ」機能を実行します。この機能は通常の更新スクリプトを実行してブラウザに出力します。

jsが常にチェックを行っているだけで、a)サーバーが1.5秒ごとに動作し、b)ブラウザが1.5秒ごとに動作する必要があるため、私は質問します。ああ、私はIMを手に入れました!本物のIMクライアントのように!」

0 投票する
6 に答える
11562 参照

python - Python で Google App Engine に Comet / サーバー プッシュを実装する

Python で Google App Engine に Comet / Server push を実装するにはどうすればよいですか?

0 投票する
8 に答える
3238 参照

java - サーバープッシュの実装

サーバー プッシュについては、こちらをご覧ください。
Web アプリケーションからリアルタイムでクライアントにデータをプッシュしたいと考えています。
オプションの1つとしてTCPソケットを検討していました。HTTP については、ここ
で Java、PHP、Python などのさまざまなフレームワークを見つけました。ただし、これらのいずれかが Push をサポートしているかどうかはわかりません。

  • サーバープッシュを実装するために、どのようなオプションとフレームワークを提案しますか?
  • 同じものを実装するためにどの言語を支持しますか?またその理由は何ですか?