目前,我正在开发一个使用Spring 3.1和Hibernate 4的web应用程序。
根据要求,我想像Facebook一样,在JSP页面上实现推送通知。如果您有任何建议,请同时列出兼容的浏览器及其版本。
发布于 2013-02-04 00:09:46
如果您可以升级到JDK7或正在使用JDK7,我建议您使用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>))希望这能有所帮助
https://stackoverflow.com/questions/14474273
复制相似问题