Vert.x Java脚本 unregisterHandler() 和 close() 未触发 Java SockJS 处理程序中的 BridgeEventType 事件

Vert.x JavaScript unregisterHandler() and close() not firing BridgeEventType events in Java SockJS handler

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

在 Java 方面,我添加了一个 SockJSHandler 来处理路由到“/eventbus/*”的任何内容,以便我可以处理来自 SockJS 连接的事件Java脚本客户端。我能够捕获 BridgeEventTypes,例如 BridgeEventType.REGISTERUNREGISTERSOCKET_CLOSED 正确(除了一个实例,因此是问题)。例如,当客户端连接到 EventBus 时,我可以看到他们的主机和端口以及他们注册处理程序的地址。当我在 Web 浏览器中刷新或关闭 JavaScript 客户端选项卡时,我还可以看到取消注册或关闭的套接字事件。这一切都很好。

问题: 我正在尝试手动结束 EventBus 连接或从 JavaScript 客户端注销处理程序。我用来执行此操作的命令是:

(背景:变量myEB定义为我的顶点EventBus连接,myEB = new vertx.EventBus(link); 这很好用)

myEB.unregisterHandler(destination, handler);myEB.close(); 是我拨打的电话.

unregisterHandlerclose 尝试未触发 UNREGISTER SOCKET_CLOSED Java EventBus 的 SockJS 处理程序上的事件。

问题:如何从 JavaScript 客户端手动注销处理程序或断开与 EventBus 的连接(关闭套接字连接)这样我的 SockJS 处理程序将触发 UNREGISTERSOCKET_CLOSED 事件?

编辑 1: 经过一些测试,close() 似乎是 JavaScript 客户端中的调用触发 SOCKET_CLOSED 事件。 unregisterHandler() 调用未触发 UNREGISTERSOCKET_CLOSED 事件。

问题已解决。我没有正确捕获事件。 SockJS 处理程序确实会触发这些桥接事件,它们是跟踪对事件总线访问的良好候选者。