Javascript Vert.x EventBus Client SockJS 获取主机和连接端口

Javascript Vert.x EventBus Client SockJS get host and port of connection

我在 Java 中使用 Vert.x Core 3.3.3 和 Web 3.3.3 作为 EventBus 服务器,在 Web 客户端上使用 Vert.x 2.0.0 和 SockJS 1.1.1在 Java 脚本中连接到 EventBus。我已连接,能够发送和接收消息,并且所有入站和出站流量都已打开。一切正常。

当客户端连接时,我的服务器能够为每个 EventBus 连接获取主机和端口。这来自 Java 中的 SockJSHandler 桥接事件,通过格式为 "host:port".

的 socket().remoteAddress()

在 Web 客户端,是否有获取 EventBus SockJS 连接到我的 Vert.x 服务器的 EventBus 的远程地址(服务器的主机和端口)的功能?我查看了 Vert.x Web 客户端 (http://vertx.io/docs/jsdoc/ & https://github.com/vert-x3/vertx-web) 的文档,但没有找到任何有用的信息。

如果您需要更多信息,请告诉我。提前致谢。

编辑 1:

我误解了我在原来的问题中实际寻找的内容,并且措辞不当。当我建立连接时,我知道 EventBus 的主机和端口是什么(即 var eb = new EventBus('localhost:8080/eventbus'); 正如@Paulo 所说)。

我实际上要寻找的是我的客户端在该 EventBus 上注册的处理程序的主机和端口。如上所述,我可以在服务器端看到这一点。主机作为 ip 地址返回,而不是我在客户端创建 EventBus 连接时传入的地址。并且端口不同,因为为该处理程序建立了一个新的 SockJS 连接(?)。是否可以为我的客户端的处理程序获取 SockJS 连接的主机和端口,尤其是端口。

你想知道的信息是你已经知道的。当您从客户端 Web 应用程序创建事件总线连接时,您会执行以下操作:

var eb = new EventBus('http://localhost:8080/eventbus');

如您所见,必须传递给构造函数的参数包含您想知道的内容:

localhost:8080

大多数时候你不想使用硬编码的主机名+端口,而是你的 html 服务的位置,所以在 JavaScript 你可以这样做:

window.location.host

这将为您提供服务器所在的位置 运行。