gpt4 book ai didi

java - 如何使用 Spring Boot 在不同端口启动 Web 容器和 Netty 服务器?

转载 作者:行者123 更新时间:2023-12-02 03:31:04 25 4
gpt4 key购买 nike

我想在端口 9061 上创建一个网络,并在同一个应用程序中在其他端口(例如 1066)上启动一个带有 netty 的套接字服务器,以便监听其他系统中我需要的一些信息。我尝试了一些方法,但我将 servlet 端口与 netty 服务器端口绑定(bind)在一起,这是我不知道的事情。

这是代码:

@Component
public class TCPServer {

@Autowired
@Qualifier("serverBootstrap")
private ServerBootstrap serverBootstrap;

@Autowired
@Qualifier("tcpSocketAddress")
private InetSocketAddress tcpPort;

private Channel serverChannel;

@PostConstruct
public void start() throws Exception {
serverChannel = serverBootstrap.bind(tcpPort).sync().channel().closeFuture().sync().channel();
}

@PreDestroy
public void stop() throws Exception {
serverChannel.close();
serverChannel.parent().close();
}

public ServerBootstrap getServerBootstrap() {
return serverBootstrap;
}

public void setServerBootstrap(ServerBootstrap serverBootstrap) {
this.serverBootstrap = serverBootstrap;
}

public InetSocketAddress getTcpPort() {
return tcpPort;
}

public void setTcpPort(InetSocketAddress tcpPort) {
this.tcpPort = tcpPort;
}
}

配置:

spring:
application:
name: MyServer
main:
banner-mode: off

server:
port: 9061

nettytcp:
puerto: 1066

我从未见过 9061 端口。

最佳答案

这是因为您调用 .closeFuture().sync() ,它将阻塞,直到 ServerChannel 关闭,而这里永远不会。我认为您只想调用 serverBootstrap.bind(tcpPort).sync().channel()

关于java - 如何使用 Spring Boot 在不同端口启动 Web 容器和 Netty 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38084468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com