問題タブ [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.

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

cometd - データの公開に関する CometD の問題

私は CometD を初めて使用し、チャンネルでデータを公開する際に問題があります。チャネルで handshake() を呼び出さないため、次のエラーが発生します。

Sender : null Sender : L:/abc/1? Exception in thread "Thread-9" java.lang.IllegalStateException: Method handshake() not invoked for local session L:/abc/1? at org.cometd.server.LocalSessionImpl.getId(LocalSessionImpl.java:161) at org.cometd.server.ServerChannelImpl.publish(ServerChannelImpl.java:309) at packagename.CometDSender.sendData(CometDSender.java:64) at packagename.ProcessorImp.processData(ProcessorImp.java:18) at packagename.TestSource.processNewData(TestSource.java:50) at packagename.TestSource.run(TestSource.java:36) at java.lang.Thread.run(Unknown Source)

しかし、私が含めるsender.handshake()と、次の例外が発生します

以下にクラスを含めました。私が何か欠けているかどうか誰かに教えてもらえますか:

public class CometDSender は Sender を実装します {

}

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

cometd - CometD サブスクリプション リスナー

クライアントからのサブスクリプション リクエストの処理と、リクエストに基づく処理の実行に問題があります。サーバーでサブスクリプション要求が受信されたときに、メソッドを呼び出して何らかの処理を実行できるようにしたいと考えています。次の CometD のドキュメントを参照し、「サブスクリプション構成のサポート」で概説されている例を試してみましたが、うまくいきません。

http://www.cometd.org/documentation/2.x/cometd-java/server/services/annotated

Spring Bean を使用して既に Bayeux サーバーを作成しており、サーバー側で作成した他のチャネル名にデータを公開できます。ヘルプまたは追加情報。このトピックについていただければ幸いです。

私が使用しているコード例:

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

cometd - ユーザー認証情報を Bayeux サーバーに保存する

クライアントが特定のチャネルをサブスクライブするときに、クライアントの UserName と SessionId を保存したいと思います。canHandshake() をオーバーライドすると、次を使用してユーザー資格情報を取得できます。

これらの資格情報を保存し、後で取得する方法を知りたいですか? ここで認証ドキュメントを見てきましたが、認証データをセッションにリンクすることについて言及しているだけです。これは Bayeux サーバー側のセッションですか??

ありがとう

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

cometd - Bayeux サーバーの構成の問題

当社の CometD/Gigaspaces アプリケーションが Bayeux サーバーの重複インスタンスを作成するという問題がありました。ここに投稿された以前の質問を参照してください。Gigaspaces でこの問題を調査した結果、GigaSpaces には PU.XML と呼ばれるアプリケーション コンテキスト ファイルの特別な処理があるため、アプリケーション コンテキスト ファイルで定義された各 Bean が 2 回作成されていたことが判明しました。PU.XML ファイルの名前を変更することでこの問題を解決しましたが、現在の問題は、クライアント側でデータを受信して​​おらず、「NetworkError: 400 Unknown Bayeux Transport - http://localhost:9292/cometd」というエラーが表示されることです。

以前は、アプリケーションが Bayeux サーバーの複製インスタンスを作成したときに、Bayeux サーバーが実行されていたスレッドの最初のインスタンスを終了するための回避策を用意しました。その結果、Web を使用してチャネルにデータを公開することができました。アプリケーション コンテキスト ファイルで構成したソケット。

現在の構成を見て、Spring を使用して Bayeux サーバーを正しく構成およびエクスポートするための代替ソリューションがあるかどうかを教えてください。Bayeux Bean が正しくエクスポートされていない、またはエクスポートが遅すぎる可能性はありますか??

更新された Web.XML とアプリケーション コンテキストの構成を以下に掲載しました。POM.XML の CometD バージョン/Jar は、以前の投稿と同じです。さらに情報が必要な場合。私にお知らせください。

現在の Web.XML:

現在の applicationContext-gigaspaces.XML:

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

publish-subscribe - Faye のルームへのクライアント パブリッシュ動作をフィルター/防止する

socket.io が問題を引き起こしているので、私が取り組んでいるプロジェクトに Faye を使用することを検討していました。私は彼らの github でいくつかの例をセットアップして試してみましたが、クライアントは接続先の部屋に直接公開できることがわかりました。これは、私が望むものとは異なる動作です。特定のルームでのクライアントの動作を、まったく公開できないように制限したいのですが、サーバーは定期的にデータをルームに送信し、新しい情報をすべて更新します (基本的に、特定のルームでの厳密なサブスクライブ動作)。Faye でこの種の動作は可能ですか、それとも間違ったツリーを吠えていますか?

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

java - 注釈 Cometd Java クライアント

Cometd ドキュメントの状態: サブスクリプションを実行するコード内の適切な場所は、 * /meta/handshake 関数です。/meta/handshake リスナーは、クライアントが実行する明示的なハンドシェイクとサーバーがトリガーする再ハンドシェイクの両方で呼び出されるため、サブスクリプションが常に適切に実行され、サーバーの状態との一貫性が保たれることが保証されます。* JavaScript と継承スタイルは、ネットワーク接続が再開されたときにサブスクライバーを失いません。以下に示すように、コードに注釈付きの cometd Java クライアントを使用すると、サブスクライバーが失われます。bayeuxClient.handshake(); 内のチャネルにサブスクライブするにはどうすればよいですか? 注釈付きスタイルを使用する方法。

注釈付きスタイル

継承されたスタイル