問題タブ [bayeux]
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.
java - CometDを使用して、チャネルのすべてのJavascriptサブスクライバーにメッセージを公開するにはどうすればよいですか?
CometDを使用するJavaWebアプリケーションの場合、メッセージがbayeuxによって処理されるたびに、チャネルのすべてのサブスクライバーにメッセージを公開するにはどうすればよいですか?
テストには、を使用しserverSession.deliver(serverSession, "/test-channel", map, null);
ました。
その結果、私のJavascriptクライアントは正常にサブスクライブしますが、10回の試行のうち1回だけメッセージを受信します。したがって、90%の確率で、ブラウザがメッセージを受信することはありませんが、バイユーのログ(レベル3)は、メッセージが毎回正しいチャネルに送信されていることを示しています。
何らかの形式のクライアントセッションを使用する必要がありますか?CometDのドキュメントは少し不明瞭なようです。
java - Javascript サブスクライバーが使用できる CometD Java クライアントを使用してメッセージを発行する
CometD を使用する Java Web アプリケーションがあります。ワークフローは簡単です。
- チャネル「/service/hello」でメッセージを受信したときに動作するサービスを定義しました。このサービスは、パラメーター「name」を想定しています。これに基づいて、次の名前のチャネルを作成します:
"/"+message.getDataAsMap().get("name")
. このチャネルには、すべてのサブスクライバーにメッセージを送り返すコールバック メソッドがアタッチされます。 - Javascript クライアント (dojo を使用) は、チャネル「/service/hello」にメッセージを発行し、「/service/hello」にパラメータとして送信された名前のチャネルにサブスクライブします。例を見てみましょう:
これはうまくいきます。今、私が達成したいことは次のとおりです。Javascriptクライアントをサブスクライバーとしてのみ使用し、Javaクライアントをパブリッシュすることです。Java クライアント API の CometD2 ドキュメントに記載されている例を使用してこれを試しましたが、期待どおりに動作しません。サービスが呼び出されたようですが、Javascript コンシューマにはメッセージが表示されません。
これを達成することは可能ですか?何が間違っているかのアイデアはありますか?ありがとう。
サーバー側のコードは次のとおりです。
jetty - OSGi、Jetty、CometD/Bayeux
Jetty と Bayeux をうまく連携させて dojo で comet を使用できるようにしました。しかし、OSGi jetty 環境に移行する必要があり、それを機能させるのに苦労しています。
非 OSGi 環境では、次の行が機能し、サービスなどを開始できます。ただし、OSGi では、サーブレットの context/config に属性「BayeuxServer.ATTRIBUTE」がありません。
これに役立つサンプルコード、ブログ投稿、参考記事などはありますか? グーグルは何も結果をもたらしませんでした!
ありがとう、エド
jquery - jquery.cometdの初期化の問題
バイユーサーバーからのメッセージを表示する簡単なテストHTMLページを作成しようとしています。
これはコードです:
このページを開こうとすると、次のjavascriptエラーが発生します。orgはjquery.cometd.jsの20行目で定義されていません。問題の行は次のとおりです。
これは私がダウンロードしたライブラリであり、ここで何か間違ったことをしていると思いますが、それが何であるかはわかりません。
よろしくお願いします、ミカ
comet - Netty + protobuf を使用した HTTP サーバー プッシュ
私たちは、JVM、.Net、およびモバイル プラットフォームにまたがる数千のクライアントへのイベント/メッセージの非同期準リアルタイム サーバー プッシュをサポートするための通信システムを設計しています。混合モデル (パブリッシュ-サブスクライブとリクエスト-レスポンスの両方) とバイナリ データがあります。
NettyとGoogle Protocol Buffersを使用しており、これらすべてを http(s) にカプセル化する必要があります。
私たちはBayeux Protocolとその Netty 実装を調べていて、JSON の代わりに protobuf コーデックを使用して修正バージョンを使用するか、WebSockets の例 ( clientとserver ) から始めて独自に展開する傾向がありました。パフォーマンス上の懸念から、Base64 エンコーディングなどは避けます。
不足している実装はありますか? protobuf ベースの Bayeux プロトコルを実行することは、どの程度実現可能でしょうか? どんなポインタでも大歓迎です。
javascript - コメット メッセージが 2 回送信されました
プロジェクトで Cometd を使用したいので、Tomcat 7 サーバーで Jetty 8 バージョンを試してみました。動作しますが、メッセージが 2 回送信されます。
プロジェクトの残りの部分と関係があるかどうかを確認するために、この機能のみを使用してスタンドアロン プロジェクトをセットアップしましたが、それでもメッセージが 2 回表示されます。
それがなぜなのか、私にはわかりません。
プロジェクトには 5 つのファイルがあります。
- pom.xml
- web.xml
- index.html
- BayeuxInitializer.java
- FormDataService.java
各ファイルのコードは次のとおりです。
web.xml
/li>index.html
/li>BayeuxInitializer.java
/li>FormDataService.java
/li>pom.xml
/li>
java - appserver/プラットフォームにとらわれないbayeuxの実装
バイユーの実装(comet)、つまりサーバーからデータを取得し、それに応じてグラフを更新するグラフ作成アプリケーションを作成することを計画しています。
しかし、とにかく私はプラットフォームにとらわれないバイユーの実装を作成することができますか
つまり、Weblogic用に開発した場合、Websphereでも機能しますか
あなたの考えを教えてください
ありがとう
jquery - Jquery の Bayaux プロトコルの実装
jQuery で実行されているアプリケーションがあります。これには、Bayaux プロトコルの実装が必要です。しかし、私の知る限り、 DOJOだけが cometd の形式でBayauxプロトコルを実装しています。
jQuery に完全に依存しているため、この実装のためだけにDojo ツールキット リリース全体をインポートすることはできません。
私の質問は -
Jquery 用の Bayaux(cometd) の実装はありますか?
そうでない場合、この実装を提供するマイクロ フレームワークはありますか?
そうでない場合、Dojo ツールキットから Bayaux 関連のものだけを抽出して、他のすべてを除外することはできますか?
php - Bayeux / CometD 用の成熟した PHP クライアントはありますか?
私はさまざまな AJAX プッシュ サーバーを評価している最中です。もちろん、そのうちの 1 つは、Bayeux プロトコルを使用するCometDです。アプリケーション サーバー コードは PHP 5.3 に基づいているため、車輪を再発明するのではなく、既存のライブラリを使用してCometD経由でデータを公開することをお勧めします。
これまでに見つけた唯一のクラスはPhometです。ただし、それはもはや維持されておらず、明らかにまだデバッグ コードが含まれており、最新の CometD サーバー (2.3/2.4) でエラーが発生することもあります。どんな推薦も大歓迎です!誰かが Phomet に出会い、それを改良したのではないでしょうか?