diff --git a/jetlinks-components/network-component/tcp-component/src/main/java/org/jetlinks/community/network/tcp/device/TcpServerDeviceGateway.java b/jetlinks-components/network-component/tcp-component/src/main/java/org/jetlinks/community/network/tcp/device/TcpServerDeviceGateway.java index df0992c4..8df85036 100644 --- a/jetlinks-components/network-component/tcp-component/src/main/java/org/jetlinks/community/network/tcp/device/TcpServerDeviceGateway.java +++ b/jetlinks-components/network-component/tcp-component/src/main/java/org/jetlinks/community/network/tcp/device/TcpServerDeviceGateway.java @@ -151,10 +151,11 @@ class TcpServerDeviceGateway implements DeviceGateway, MonitorSupportDeviceGatew return client .subscribe() .filter(tcp -> started.get()) - .doOnCancel(client::shutdown) + .publishOn(Schedulers.parallel()) .flatMap(this::handleTcpMessage) .onErrorContinue((err, ignore) -> log.error(err.getMessage(), err)) - .then(); + .then() + .doOnCancel(client::shutdown); } Mono handleTcpMessage(TcpMessage message) {