Websocket Netty 4.0多端口,每个端口具有不同的协议

Websocket Netty 4.0多端口,每个端口具有不同的协议,websocket,netty,Websocket,Netty,我想netty是我所知道的最好的java网络框架,在阅读并尝试了一些示例后,我有一个问题: 1。使用netty 4.0为具有不同协议的多端口创建网络服务器的最佳方法是什么? 每个服务器创建: EventLoopGroup bossGroup=new NioEventLoopGroup();//(一) EventLoopGroup workerGroup=新的NioEventLoopGroup() ServerBootstrap b=新的ServerBootstrap();//(二) 每个在线程内

我想netty是我所知道的最好的java网络框架,在阅读并尝试了一些示例后,我有一个问题:

1。使用netty 4.0为具有不同协议的多端口创建网络服务器的最佳方法是什么?

每个服务器创建:

EventLoopGroup bossGroup=new NioEventLoopGroup();//(一)

EventLoopGroup workerGroup=新的NioEventLoopGroup()

ServerBootstrap b=新的ServerBootstrap();//(二)

每个在线程内运行的服务器

是这样吗

2。Websocket服务器

如何为跨源案例保护Websocket服务器?关于这件事我没有任何参考资料

非常感谢你的帮助

问候


BC,

我将在服务器引导程序之间共享NioEventLoopGroup以共享相同的线程。

正如Norman所说,重要的是您需要共享事件循环组,这样您就不会创建太多的线程。只要共享事件循环组,就可以创建任意数量的
ServerBootstrap
s:

EventLoopGroup bossGroup = new NioEventLoopGroup(numBossThreads);
EventLoopGroup workerGroup = new NioEventLoopGroup(numWorkerThreads);

ServerBootstrap sb1 = new ServerBootstrap();
sb1.group(bossGroup, workerGroup);
...
sb1.bind();

ServerBootstrap sb2 = new ServerBootstrap();
sb2.group(bossGroup, workerGroup);
...
sb2.bind();

ServerBootstrap sb3 = new ServerBootstrap();
sb3.group(bossGroup, workerGroup);
...
sb3.bind();

bossGroup
用于接受传入的连接,
workerGroup
用于处理
bossGroup
接受的连接。请进行一些性能测试,并指定最佳的
numbosthreads
numWorkerThreads

谢谢您的回答诺曼和信任,我将尝试您的建议我不明白如何创建多个服务器引导。根据我看到的示例代码,在bind()之后必须执行以下操作:sb.bind(PORT.sync().channel().closeFuture().sync();每个同步操作块。因此,如果您对一个服务器引导执行此操作,您将永远不会运行其他服务器引导。我遗漏了什么?我有同样的问题。你能提供一个例子吗?你不需要sync()。官方示例中的sync()是为了防止服务器自动关闭,并且在服务器套接字关闭时服务器会自动关闭。