4

从过去的 4 天开始,我一直在努力使用 java(在服务器端)和 javascript(客户端)在 vert.x 框架中实现推送通知。我一直在研究这个链接的例子。

我无法理解以下代码行中“前缀”的含义。如何将我的自定义消息放入 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>"));
    }
  }

任何帮助都将是可观的。

4

1 回答 1

0

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

于 2013-06-19T11:26:18.193 回答