netty做webRTC 的一点疑问

sprouting 发布于 2020/11/11 12:31
阅读 1K+
收藏 0

公司打算做webRTC,场景是这样的,可能在规定时间内,有5000多人同时在线,然后1对N发起视频通话,方案确定使用webRTC来实现,首先要解决第一个问题,这么多人同时在线,最开始考虑websocket,但查询发现,websocket有连接数限制,等于要部署多个tomcat才行,这个方案就不考虑了,后面查询到netty,说是支持百万连接,那决定用netty来做,netty当webRTC的信令服务器,同时也管理所有的连接,但查询到前端,却是用websocket连的服务器,我的问题是,这会不会也和websocket通信一样,也需要N个tomcat才能支持所有人在线了?或者换个问法,websocket连接netty,走的通信是不是已经不是ws,而是socket通信了?

加载中
0
bambi2017
bambi2017

你知道大家选websocket而不选socket的原因吗?因为浏览器不支持socket,所以你用websocket就不用考虑socket的问题。你选tomcat还是选netty完全不是问题,如果你用springboot的话,只是买一个maven依赖的事,想切换成啥就切换成啥。5000人,我感觉用netty比较合适。直播肯定用异步io合适,这是毫无疑问的。就看你会不会用了。至于一台服务器能不能支持5000人,我觉得可以。

0
sprouting
sprouting

引用来自“bambi2017”的评论

你知道大家选websocket而不选socket的原因吗?因为浏览器不支持socket,所以你用websocket就不用考虑socket的问题。你选tomcat还是选netty完全不是问题,如果你用springboot的话,只是买一个maven依赖的事,想切换成啥就切换成啥。5000人,我感觉用netty比较合适。直播肯定用异步io合适,这是毫无疑问的。就看你会不会用了。至于一台服务器能不能支持5000人,我觉得可以。

感谢您的回答,这个问题其实是看到一些资料后的疑惑。

<Connector port="8180" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" acceptCount="4000" maxThreads="500" maxConnections="4000">

tomcat 中如上的有一段配置, maxConnections,按照说法,这个就是影响连接数的,如果这个设置比较小,是不是netty也就不能实现百万连接了,如果连接数比较多,就需要多个tomcat来部署多个netty这样吗?

sprouting
sprouting
回复 @bambi2017 : 我明白你的意思了,之前做过netty都是放在嵌套在web项目中,思维陷入定式了,但实际没必要嵌套在web中,也就不需要tomcat来运行
bambi2017
bambi2017
netty和tomcat同样都是web容器,用了tomcat 就不用netty。这个最大连接数都是可以修改的,但修改后的后果是什么你都不知道,本质上netty是用异步io,tomcat用bio才造成了他们瓶颈的不同。我感觉如何考虑技术选型不是你需要考虑的问题吧。
0
dxx2018
dxx2018

udp, 握手后就可以释放

0
comsince
comsince

首先你要弄清除websocket与socket的区别与联系.这里的websocket是基于tcp的协议.Netty只是一个网络框架.基于它可以实现基于TCP的多种协议实现.websocket只是基于TCP上的一个应用层协议.5000人同时在线并不是什么难事,单机加足够内存足以. 你要做多人音视频通讯.信令服务器只是其中一个技术点,更多是需要媒体服务器的支持.

sprouting
sprouting
感谢老哥的回答,很有帮助
0
comsince
comsince

不是什么都需要部署在web容器里面运行.如果只是支持websocket协议,完全可以可以独立运行,不需要任何web服务器.

0
o
opal

tomcat也可以用nio

0
北极心
北极心

SpringBootCloud + Netty-Socketio 了解下

0
Joseph_Mok
Joseph_Mok

为什么需要tomcat?

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部