使用vert.x java API如何将服务器通知(推送通知)发送到客户端?

4
我过去4天一直在使用Java(服务器端)和JavaScript(客户端)在vert.x框架中实现推送通知方面遇到了困难。我一直在学习来自这个链接的示例。
我无法理解以下代码行中"prefix"的重要性。 如何将我的自定义消息放入JSON数组,以便将其作为通知发送给客户端。
sockJSServer.bridge(new JsonObject().putString("prefix", "/eventbus"), permitted, permitted);

我还无法按照自己的需求实现客户端。我的要求是从数据库获取数据,然后 vert.x 服务器将该数据发布给n个客户端。整个场景需要哪些先决条件?

在上述链接中,存在index.html。我在浏览器上调试过它,成功连接到了服务器。 还有一点需要注意,index.html中的"/eventbus"有什么意义(第108行)

eb = new vertx.EventBus("http://localhost:8080/eventbus"); 

成功连接服务器后,每个客户端是否都需要订阅服务器以便从服务器获取通知?我希望每个客户端都可以在没有任何干预的情况下获得通知。

现在,在以下代码中,地址是什么?它是客户端IP地址,还是服务器或其他任何东西。

function publish(address, message) {
    if (eb) {
      var json = {text: message};
      eb.publish(address, json);
      $('#sent').append($("<code>").text("Address:" + address + " Message:" + message));
      $('#sent').append($("</code><br>"));
    }
  }

  function subscribe(address) {
    if (eb) {
      eb.registerHandler(address, function(msg, replyTo) {
        $('#received').append("Address:" + address + " Message:" + msg.text + "<br>");
      });
      $('#subscribed').append($("<code>").text("Address:" + address));
      $('#subscribed').append($("</code><br>"));
    }
  }

任何帮助都将不胜感激。


等待一些帮助... - ved
我觉得没有人会帮助我。:( - ved
1
你是否理解如何使用任意事件总线的理论?地址的概念并非Vert.x特有,它只是一种标识流经总线上的消息的方式。然后,你可以订阅多个侦听器以接收任何类型的消息。 - diega
我理解了“地址”的意义。但是,我不知道如何在客户端接收通知。 - ved
1个回答

0

registerHandler() 中的回调函数以 Json 形式接收来自服务器的消息。您可以通过 message.notification 获取您的自定义消息,其中 notification 是在服务器端设置的唯一键。


感谢Rahul的宝贵努力。我自己解决了我的问题。 - ved

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接