首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java web应用的推送通知

Java web应用的推送通知
EN

Stack Overflow用户
提问于 2013-01-23 15:12:18
回答 7查看 34.8K关注 0票数 19

目前,我正在开发一个使用Spring 3.1和Hibernate 4的web应用程序。

根据要求,我想像Facebook一样,在JSP页面上实现推送通知。如果您有任何建议,请同时列出兼容的浏览器及其版本。

EN

Stack Overflow用户

发布于 2013-02-04 00:09:46

如果您可以升级到JDK7或正在使用JDK7,我建议您使用Vert.x Vertx.io,在客户端使用Sockjs。Vert.x有一个完整的sockjs服务器实现,我将尝试提出一种实现的方法,其余的请参阅文档。

服务器实现可能如下所示

代码语言:javascript
复制
    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>);

在客户端,注册一个处理程序,比如加载文档

代码语言:javascript
复制
 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“

代码语言:javascript
复制
function subscribe(address) {
if (eb) {
  eb.registerHandler(address, function(msg, replyTo) {
  console.log("Reply recieved")
          });

}
}

完成所有这些设置后,您现在可以使用前面创建的事件总线将任何数据从服务器推送到此地址

代码语言:javascript
复制
eventBus.publish("AwesomeNotifications", new JsonObject(<some hashmap to serialize>))

希望这能有所帮助

票数 24
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14474273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档