代码之家  ›  专栏  ›  技术社区  ›  wrslatz

Javascript垂直。x EventBus客户端SockJS获取主机和连接端口

  •  1
  • wrslatz  · 技术社区  · 9 年前

    我正在使用Vert。x Core 3.3.3和Web 3.3.作为事件总线服务器和Vert。x 2.0.0和SockJS 1.1.1在Javascript的web客户端上连接到事件总线。我已连接,能够发送和接收消息,所有入站和出站流量都是开放的。一切正常。

    当客户端连接时,我的服务器能够获得每个EventBus连接的主机和端口。这来自Java中SockJSHandler的桥事件,通过socket()。remoteAddress()格式为“主机:端口”。

    在web客户端,是否有功能来获取到我的Vert的EventBus SockJS连接的远程地址(服务器的主机和端口)。x服务器的事件总线?我已经查阅了Vert的文档。x Web客户端( http://vertx.io/docs/jsdoc/ & https://github.com/vert-x3/vertx-web )但是没有发现任何有用的东西。

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

    我误解了我在最初的问题中真正想要的是什么,措辞很糟糕。当我建立连接时,我知道事件总线的主机和端口是什么(即var eb=new EventBus('localhost:8080/EventBus');正如保罗所说)。

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

    1 回复  |  直到 9 年前
        1
  •  2
  •   Paulo Lopes    9 年前

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

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

    localhost:8080
    

    大多数情况下,您不希望使用硬编码的主机名+端口,而是希望使用html提供的位置,因此在JavaScript中,您可以:

    window.location.host
    

    这将提供服务器运行的位置。