Websocket Netty 4.0多端口,每个端口具有不同的协议
我想netty是我所知道的最好的java网络框架,在阅读并尝试了一些示例后,我有一个问题: 1。使用netty 4.0为具有不同协议的多端口创建网络服务器的最佳方法是什么? 每个服务器创建: EventLoopGroup bossGroup=new NioEventLoopGroup();//(一) EventLoopGroup workerGroup=新的NioEventLoopGroup() ServerBootstrap b=新的ServerBootstrap();//(二) 每个在线程内运行的服务器 是这样吗 2。Websocket服务器 如何为跨源案例保护Websocket服务器?关于这件事我没有任何参考资料 非常感谢你的帮助 问候Websocket Netty 4.0多端口,每个端口具有不同的协议,websocket,netty,Websocket,Netty,我想netty是我所知道的最好的java网络框架,在阅读并尝试了一些示例后,我有一个问题: 1。使用netty 4.0为具有不同协议的多端口创建网络服务器的最佳方法是什么? 每个服务器创建: EventLoopGroup bossGroup=new NioEventLoopGroup();//(一) EventLoopGroup workerGroup=新的NioEventLoopGroup() ServerBootstrap b=新的ServerBootstrap();//(二) 每个在线程内
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()是为了防止服务器自动关闭,并且在服务器套接字关闭时服务器会自动关闭。