From 1222676fad93e8889fb5fde00023e5879ee19483 Mon Sep 17 00:00:00 2001 From: Wu Xuecheng Date: Wed, 23 Mar 2022 12:49:23 +0800 Subject: [PATCH] fix stubevent can't work (#9825) fix #9824 --- .../org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java index 220f8bfd5e5..e609d2327c4 100644 --- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java +++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java @@ -239,13 +239,14 @@ Invoker getInvoker(Channel channel, Invocation inv) throws RemotingException int port = channel.getLocalAddress().getPort(); String path = (String) inv.getObjectAttachments().get(PATH_KEY); - // if it's callback service on client side + //if it's stub service on client side(after enable stubevent, usually is set up onconnect or ondisconnect method) isStubServiceInvoke = Boolean.TRUE.toString().equals(inv.getObjectAttachments().get(STUB_EVENT_KEY)); if (isStubServiceInvoke) { - port = channel.getRemoteAddress().getPort(); + //when a stub service export to local, it usually can't be exposed to port + port = 0; } - //callback + // if it's callback service on client side isCallBackServiceInvoke = isClientSide(channel) && !isStubServiceInvoke; if (isCallBackServiceInvoke) { path += "." + inv.getObjectAttachments().get(CALLBACK_SERVICE_KEY);