現在、Spring3.1とHibernate4を使用するWebアプリに取り組んでいます。
要件に応じて、FacebookのようにJSPページにプッシュ通知を実装したいと思います。何か提案があれば、互換性のあるブラウザとそのバージョンもリストしてください。
現在、Spring3.1とHibernate4を使用するWebアプリに取り組んでいます。
要件に応じて、FacebookのようにJSPページにプッシュ通知を実装したいと思います。何か提案があれば、互換性のあるブラウザとそのバージョンもリストしてください。
JDK 7 にアップグレードできる場合、または JDK 7 を使用している場合は、 Vert.x Vertx.ioを使用することをお勧めします。クライアント側で Sockjs を使用してください。Vert.x には完全な sockjs サーバー実装があります。これを実装する方法を提案します。残りはドキュメントを参照してください。
サーバーの実装は次のようになります
Vertx vertx = Vertx.newVertx();
EventBus eventBus = vertx.eventBus()
HttpServer server = vertx.createHttpServer();
JsonArray permitted = new JsonArray();
permitted.add(new JsonObject());
SockJSServer sockJSServer = new DefaultSockJSServer(vertx, server);
sockJSServer.bridge(new JsonObject().putString("prefix", "/pusher"), permitted, permitted);
server.listen(<some port>);
クライアント側では、ドキュメントの読み込み時にハンドラーを登録します
function () {
if (!eb) {
eb = new vertx.EventBus("http://<your_host>:<your_port>/pusher");
eb.onopen = function() {
console.log("connected")
};
eb.onclose = function() {
console.log("Not connected");
eb = null;
};
}
}
次に、ハンドラーを任意のアドレスに登録できます。ここのアドレスは何でもかまいません。「AwesomeNotifications」であると仮定します。
function subscribe(address) {
if (eb) {
eb.registerHandler(address, function(msg, replyTo) {
console.log("Reply recieved")
});
}
}
すべての設定が完了したら、先ほど作成したイベント バスを使用して、サーバーからこのアドレスにデータをプッシュできます。
eventBus.publish("AwesomeNotifications", new JsonObject(<some hashmap to serialize>))
お役に立てれば
HTMl5サーバー送信オプションを使用できます。ここで詳細を取得できます
サーバー-送信オプション:
http://www.w3schools.com/html/html5_serversentevents.asp
サーバー用のJavaservelt-送信:
チュートリアル:
http://peaktechie.blogspot.in/2012/04/small-tutorial-on-html5-server-sent.html
HTML5でサポートされているブラウザ:
私は最近これを調べています。イベント ベースのアプローチは、単一ページの Web アプリを構築するのに非常に便利ですが、複数ページの Web アプリでも使用できます。
これを行うにはいくつかの方法があります。
最終的に、私は著者にとって、spring-mvcプロジェクトに統合する問題について、Atmosphere が明らかに最適だと思います。
編集:タイプミス
これにはAtmosphereを使用しました。ブラウザでサポートされている場合は WebSocket を使用し、サポートされていない場合は適切にポーリングにフォールバックします。また、生活をシンプルにする素敵な jQuery プラグインもあります。
パブリッシュ/サブスクライブ ベースのMQTTミドルウェアまたは XMPP プロトコルのいずれかを使用することをお勧めします。メッセージの小さなチャンクを送信する予定がある場合は、最も軽量な方法であるため、MQTT を使用するのが最適です。JavaScript を含む多くのクライアント ライブラリがあり、開発と管理が非常に簡単です。
プッシュ通知をサポートするために長い間 XMPP を使用してきましたが、Ejabberサーバー (またはその他のもの) を維持することは非常に困難です。
また、実際にはクライアントとサーバーの実装を持つsocket.ioに移行しましたが、nodejs サーバーを維持して js をいじり始める必要があります。
また、1 つのプロジェクトでfayeをテストし、Ruby 環境で完全に動作します。
しかし、結局のところ、より良い解決策は、サーバーに埋め込むことができるライブラリ (java) を使用し、他のテクノロジを忘れることだと思います。Atmosphereは、クライアントとサーバーでも良い解決策だと思います。