問題タブ [cometd]
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.
c - Chttpサーバープログラミング
サーバーからクライアントのphpWebページに直接データをプッシュしようとしています。私はこの質問を何度もグーグルで検索しましたが、ajaxプッシュエンジンやcometDなどの他のものを使用したくありません(私が話していることを知っている場合)。接続されているすべてのクライアントにデータを送信するプログラムをサーバーに配置する方法があるかどうかを知りたいです。私はこれがcまたはc++またはc#で行われることを望みます、私はそれを自分でプログラムすることができます私はそれが可能であるならそしてどのようにそれをしたいだけです。
grails - 接続されているクライアントが 1 つだけの場合に、cometd から複数のクライアント: 真のアドバイスが表示されるのはなぜですか?
私は、CometD を Grails 2.0 アプリケーションに統合する作業を行っています (新しいプラグインを作成することにより、既存の cometd プラグインは現在かなり壊れているように見えるため、使用していません)。すべてが適切に構成されていると思います。私が経験しているのは、ブラウザが接続すると、最初のメタ/ハンドシェイクが成功することです。ただし、その後のすべての meta/connect 呼び出しは、multiple-client のアドバイスが true に設定されて返され、ロング ポーリング接続が閉じられます。これは2秒ごとに発生します(デフォルトの間隔だと思います)。
前述したように、私は Grails 2.0 を使用しています。Tomcat 7 は、Grails がデフォルトで使用するものです。
これが私が現在見ているものです:
/meta/handshake への呼び出し
これは戻りペイロードです:
ブラウザにクッキーが設定されていることを確認しました。/meta/connect への後続の呼び出しは次のようになります。
リクエスト ペイロードの content-length と id はリクエストごとに変更されます。最初の 3 つの呼び出しは次のように返されます。
コール 1:
コール 2:
コール 3:
その時点から、戻ってくるすべてのメッセージは最後のものとまったく同じです。開いているブラウザ ウィンドウ/タブは 1 つだけです。
以下は、web.xml ファイルの該当する部分のコピーです。
BuildConfig.groovy:
最後に、CometdGrailsPlugin.groovy の doWithSpring セクション:
うまくいけば、これはあまり多くの情報ではありません。私は過去数日間これを理解しようとしてきましたが、アイデアが不足しており、本当に助けが必要です
jquery - CometD + Java + jQuery: 1 回の呼び出しでパブリッシュが多すぎる
こんにちは、cometd + jquery + Java を使用して次の問題が発生し、メッセージのブロードキャストでいくつかのテストを行っています。
これは私の web.xml で、cometd の Annotations 実装を使用しています。
これは私が登録したサービスです:
そして、これはサブスクライブとパブリッシュに使用する JS jQuery コードです (これはより大きなオブジェクトの一部であるため、これに関連する主要なものを貼り付けるだけです)。
まあ、コンソールでメソッドpublishBroadを実行しようとした後、実際には実行されますが、サーバー内で1回のクリック/リクエストで450〜500回実行されます(はい、ブラウザからJavaサーバーへの1回のリクエストであり、450〜500回です)サーバー側でのみ繰り返され、その応答でブラウザーに何度も到達します)!!
私は何を間違えましたか?私はcometdの公式サイトから最新のcometd.jsとjquery.cometd.jsを使用しています。
また、コンソールでこれを確認すると(JBoss AS7を使用しています)、呼び出しがメソッドに入ったかどうかを確認するためにいくつかの出力ログ行を残しました( Sys out println は The Channel is:. と表示され、ログ行 450 も表示されます-JBoss コンソールで 500 回!
誰でもこれを修正するのを手伝ってもらえますか??
ありがとう!!
excel - アドインExpressRTD更新の問題
Add-InExpressを使用したExcelAddIn、VS2010、cometd.netがcometdサーバーおよびTom catと通信RTDInitializeイベントハンドラーで、Tom Catにログインしてcometdサーバーに接続し、クラス資格情報のインスタンスを使用して、loggedOn(set IsLoggedOnをtrueに設定)およびsessionID。
トピックのRefreshDataハンドラーで、まだ登録していない場合は、cometdサーバーに登録します。次に、トピックをTomCatにサブスクライブします。これで、ユーザーがExcelからRTD関数を削除すると、DisconnectDataハンドラーが呼び出され、cometdサーバーから切断し、Tom Catからログアウトし、sessionIDをクリアします。次回、ユーザーがRTD関数を再度入力すると、RTDInitializeイベントハンドラーが呼び出され、IsLoggonedがtrueに設定され、sessionIDが更新された場所にログインして接続します。奇妙なことに、2回目のログイン後、refreshDataでクレデンシャルを確認すると、IsLoggedがfalseになり、最初のログアウト時と同じようにsessionIDが空になります。誰もが理由を知っていますか?はっきりさせたかどうかわからない。ありがとう
java - 公開されたメッセージのローカル受信の防止
セットアップ:
1つのサーバークラス(AbstractServiceの拡張)1つのcometdクライアント(カスタムC実装、ただしこの質問には関係ありません)
小さな質問:サーバークラスが独自のチャネルに公開すると、handleMessage関数が呼び出されます。一般的に、私はこれを本当に望んでいませんが、回避することができます(サーバーは、サーバーがいつメッセージを送信するかを知る必要はありません)。公開の代わりにServerSession.deliverを使用できますか?
本当の質問:私のクライアントでは、サーバークラスのチャネルでサーバーにメッセージを送信します。サーバーのhandleMessage関数が呼び出されますが、メッセージは元のクライアントにも返送されます。メッセージが元のクライアントに返送されないようにサーバーを構成する方法はありますか?
Extensionクラスを見ましたが、これは別々のクライアントにメッセージを送信する1レベル上で動作しているようです(ここでメッセージを強制終了すると、サーバーを含むどのクライアントにも送信されません)。
何か案は?前もって感謝します!
.net - cometd.NET クライアントから BAYEUX_BROWSER Cookie を取得する方法
私は cometd.net クライアントを使用しており、サーバー側では cometd Java を使用しています。ハンドシェイク後、サーバーは JSON ペイロードを返します。応答ヘッダーには Set-Cookie: BAYEUX_BROWSER=533bkb4ydvb9rti9gz9zxs3fgfv があります。これをクライアントから取得するにはどうすればよいですか? json ペイロードに clientid があるのを見ましたが、それは bayeux_broswer ではありません。ありがとう
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 に出会い、それを改良したのではないでしょうか?
jboss6.x - JBoss 6 での CometD デモ
JBoss AS 6 で実行するアプリケーションで Cometd ライブラリを使用する予定です。そのため、cometd 2.4.0 をダウンロードし、example war (cometd-demo/target から) を AS にデプロイしようとしました。これは変更なしでは不可能であることを認識していたので、web.xml に変更を加えました。
web-app タグで servlet 3.0 に変更されました (本来は 2.5 です)。CometD faq answerの完全なタグを使用しました。また、この説明に基づいて、web.xml に既にあった継続フィルターのコメントを外しました。
faq answerに基づいて、async-supported タグを追加しました。ただし、これは問題を引き起こします。コメントを外すだけでは、web.xml を解析できません。これは XML のタグの順序によるものであることがわかったので、async-supportedタグの順序を、 load-on-startupタグの直後に移動しました。ただし、Jboss は依然として例外をスローします。
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cometd-demo-2.4.0].[cometd]] Servlet.service() for servlet cometd throwed exception: java. lang.IllegalStateException: このリクエストで使用されているサーブレットまたはフィルタは非同期操作をサポートしていません
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cometd-demo-2.4.0].[cometd]] Servlet.service() for servlet cometd throwed exception: java. lang.ClassNotFoundException: BaseClassLoader@12a54b からの org.eclipse.jetty.server.AbstractHttpConnection
私が使用する完全な web.xml ファイルはhereです。
例では、すべてのエラーが報告されているにもかかわらず、私の Jboss は実行されませんが、firebug を見ると、ロング プールではなくクイック プールが実行されていることがわかります。サーバーは、ブラウザーが複数の接続を開いていると認識しているようですが、そうではありません (以下の JSON を参照)。
誰かがJBoss as6でサンプルを動作させることができましたか? ここで何が間違っていましたか?
comet - Dojo cometd の準備ができていません
Jetty、Dojo、および Maven を使用して Bayeux サーバーとクライアントをセットアップしようとしています。
私の問題は、道場の準備が整っていないように見えることです。require のコールバックは呼び出されません。
これは HTML ページのコードです。
Dojo がサーバー上で動作しないわけではありません。します。私のアプリは dojo 1.7.2 で書かれています
私が知らない既知の問題がありますか、それとも何か間違っていますか?
コールバックが呼び出されない理由を見つける方法についてのヒントをありがとう。