目前,我正在上使用了Spring 3.1和Hibernate 4 web应用程序。
按要求,我想实现推送通知像Facebook那样,在JSP页面上。 如果您有任何建议,那么请还与它们的版本列出兼容的浏览器。
目前,我正在上使用了Spring 3.1和Hibernate 4 web应用程序。
按要求,我想实现推送通知像Facebook那样,在JSP页面上。 如果您有任何建议,那么请还与它们的版本列出兼容的浏览器。
如果你可以升级到或正在使用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
Java的的servelt用于服务器发送:
Java Servlet与服务器发送事件
教程:
http://peaktechie.blogspot.in/2012/04/small-tutorial-on-html5-server-sent.html
HTML5支持的浏览器:
http://fmbip.com/litmus
我一直在寻找到这家最近。 基于事件的做法是一个伟大的WASY构建单个页面的Web应用程序,但能在多的webapps也可以使用。
有许多方法可以做到这一点:
Ulimately,我认为对于笔者的问题,整合到一个弹簧MVC项目,气氛显然是最合适的。
编辑:错别字
我用大气来做到这一点。 它使用的WebSockets如果它们被浏览器支持,并很好地回落到轮询时没有。 他们也有一个很好的jQuery插件,让生活简单。
我建议你去与长轮询又名Comet
。 我用它来随机数抛出给客户端。 您也可以参考这个问题。
我的建议是为使用发布-订阅基于MQTT中间件或XMPP协议。 如果您计划发送消息的小块,那么这将是最合适的使用MQTT因为它是最轻量级的路要走。 它有大量的客户端库包括JavaScript,很容易开发和管理。
我们已经使用XMPP很长一段时间来支持推送通知,但十个分量的Ejabber服务器(或其他)是非常难治。
此外,actualy我们已经搬到socket.io有客户端和服务器实现,但你必须到十个分量服务器的NodeJS并开始与JS玩。
我还测试了王菲在一个项目中,并完全适用于Ruby的enviroments。
但在最后,我认为更好的解决方案是使用,你可以在你的服务器(Java)的嵌入而忘记其他TECNOLOGIES图书馆,我觉得气氛是客户端和服务器也是一个不错的解决方案。