問題タブ [atmosphere]
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 - 雰囲気APIを使用しますか、それともグリズリーを直接使用しますか?
雰囲気APIを使用するか、グリズリーを直接使用するかの違いがわかりませんか?説明できますか?
java - 大気-パブサブ.戦争と組み合わせて大気-スペード-サーバーを使用する方法
Atmium-spade-server.jar + pubsub.war で遊んでみたいと思います。最初にmavenをインストールしましたが、正直なところ、Mavenは私にとって初めてのことです。誰かがそれを正しく使用する方法を説明してください。
私が試したこと
- そこから Atmosphere-spade-server + pubsub.war をダウンロードします。
java -jar atmosphere-spade-server-0.6.0-20100329.142039-1.jar -a atmosphere-pubsub.war
curl http://localhost:8080/atmosphere-pubsub/myAtmosphereTopic
<html><body><h1>Resource Not> Found</h1></body></html>
Atmosphere の使用方法についてのガイド付きツアーがあるだけです。
java - 大気中の他のフレームワーク(彗星)からの通知をトリガーする方法は?
基本的にいくつかのサンプルを読みましたが、すべてが 1 つのサーブレットに含まれています。たとえば、doGet を使用してロング ポーリング接続を確立してから、doPost を使用してイベントをトリガーし、中断されたすべての接続を通知します。
これが私の質問です:私はSpring MVCで他のWebアクションプログラミングをしています.Spring MVCコントローラーでは、ユーザーは/message/postを介してメッセージを投稿します.このアクションを作成して、雰囲気ハンドラーをトリガーして中断された接続を通知するにはどうすればよいですか?
java - Atmosphere または Cometd を使用する
これら 2 つの Java コメット ライブラリの違いは何ですか? どちらかを選択する理由はありますか?
dependencies - AtmosphereおよびJerseyとの依存関係がありません
AtmosphereとJerseyを一緒に使用して、ユーザーにメッセージをブロードキャストできるようにしています。ただし、Jerseyエンドポイントへの要求に応じて、以下がログに表示され、ServletExceptionが発生します。
スタックトレースの一部:
私はMavenを使用しており、次の依存関係を追加しました。
私は何が欠けていますか?ありがとう!
atmosphere - Atmosphere ランタイムを使用して単一の接続にブロードキャストできない
Atmosphere ランタイム 0.6 スナップショットを使用しています。Tomcat 7 は、Http11 Nio コネクタを使用していることを正しく記録しており、BlockingIO が使用されるという警告はありません。
3 種類のチャネルにメッセージを送信しようとしています。
- グローバル ブロードキャスター - 中断されたすべてのリソースにブロードキャストします。(全て)
- 特定のリソース (パートナーなど) にブロードキャストする
- 現在のリソースにブロードキャスト (自己)
ログイン アクションが発生したときに、この種のブロードキャストを実現するには、セッションに何を保存する必要がありますか?
私のコードの詳細は次のとおりです。
- 私のハンドラーは AtmosphereHandler を実装します
コンストラクターで、globalBroadcaster を次のようにインスタンス化します。
globalBroadcaster = new DefaultBroadcaster();
ログインすると、
resource.getAtmosphereConfig().getServletContext().setAttribute(name, selfBroadcaster);
ここで、name はリクエスト パラメーターのユーザー名で、selfBroadcaster は DefaultBroadcaster の新しいインスタンスです。sendMessageToPartner のコードは次のとおりです。
private synchronized void sendMessageToPartner(Broadcaster selfBroadcaster,
AtmosphereResource<HttpServletRequest, HttpServletResponse> resource,String name, String message) {
// this gives the partner's name
String partner= (String) resource.getAtmosphereConfig().getServletContext().getAttribute(name + PARTNER_NAME_TOKEN);
// get partner's broadcaster
Broadcaster outsiderBroadcaster = (Broadcaster) resource
.getAtmosphereConfig().getServletContext()
.getAttribute(partner);
if (outsiderBroadcaster == null) {
sendMessage(selfBroadcaster, "Invalid user " + partner);
return;
}
// broadcast to partner
outsiderBroadcaster.broadcast(" **" + message);
必要な情報をすべて提供したことを願っています。必要に応じて、さらに情報を提供できます。
問題は、グローバル メッセージが送信されることです。パートナーへのメッセージが送信されると、ブロックされる場合があり、メッセージはクライアントでまったく受信されません。これは、3 ~ 4 件のメッセージの後に一貫して発生します。
スレッドの問題はありますか?私は何を間違っていますか?
誰かがこれで私を助けてくれることを願っています。
javascript - 複数のストリーミング XmlHttpRequests (XHR)/Channels ブロック?
Comet を使用する Web アプリを作成しています。バックエンド側は Atmosphere と Jersey でビルドされています。しかし、複数のチャンネルを購読したいときに問題が発生しました。jQuery プラグインの雰囲気供給は、1 つのチャネルのみをサポートしています。私は今のところコメットに関して独自の実装を書き始めました。
問題
チャネル 1 を「Hello」というメッセージで更新すると、通知が届きません。ただし、後でメッセージ「World」でチャネル2を更新すると。「Hello」と「World」の両方を同時に取得します..
AtmosphereConnectionComet の実装:
更新しました
- Ivo の修正を追加 (スコープとインスタンス化の問題)
- <--EOD--> indexOf が大気メッセージをキャプチャするように修正しました
- onIncoming XHR メソッドにコメントを追加しました
更新 9-1 23:00 GMT+1
雰囲気が物を出力していないようです..
ProductEventObserver
これは、SEAM イベントを監視する ProductEventObserver です。このコンポーネントは自動作成され、SEAM の APPLICATION コンテキストにあります。イベントをキャッチし、broadcastToProduct を使用して適切なブロードキャスターを取得し (broadcasterfactory 経由)、中断された接続に json メッセージ (gson を json シリアライザー/マーシャラーとして使用) をブロードキャストします。
Web.xml
雰囲気.xml
p>放送局:
更新 10-1 4:18 GMT+1
- 次のコンソール出力は、ブロードキャスターが見つかり、アクティブであることを示しています。
- BroadcastToProduct を完全なクラス コードに更新しました
- 開始段落を問題で更新
- web.xmlとatmosphere.xmlを追加
コンソール出力:
primefaces - Glassfish v3 および Primefaces で Atmosphere を使用する際の問題
実行するためにAtmosphereが必要なprimefaces ajax push/cometを使用してチャットアプリを作成しようとしています.amは私のWebサーバーとしてglassfish v3を使用しています.しかし、チャットアプリを起動してチャットしようとすると、この例外が発生します.
警告: StandardWrapperValve[Comet Servlet]: PWC1382: サーブレット Comet Servlet java.lang.IllegalAccessError に例外を割り当てます: クラス org.primefaces.comet.PrimeFacesCometServlet からフィールド org.atmosphere.cpr.AtmosphereServlet.atmosphereHandlers にアクセスしようとしました。
プロジェクトの締め切りが迫っているので、どなたか助けてください。よろしくお願いします。
java - 大気サンプルの実行方法は?
Github から Atmosphere Samples をダウンロードしました。chat-sample で jetty:run goal を実行したところ、いくつか問題が発生しました。
ブラウザでページ (http://localhost:9090) にアクセスできますが、チャットを開始すると、サーバーが AJAX 要求ごとに 404 エラー ページを返すため、何も追加されません。
私は何を間違っていますか?