2012-12-14 34 views
2

我在Windows XP sp3上使用适用于Java 6的Red5版本1.0.0(最终版本)。我正在使用从https://code.google.com/p/red5/下载的安装程序版本。我有一个项目,我正在用户之间进行现场摄像头聊天。我正在使用RTMPT(HTTP over RTMP)协议。因此,我在Apache Web服务器后面设置了我的Red5服务器。问题在于,一切顺利进行45-50秒,突然RTMPT连接关闭。我是不使用专用的rtmpt服务器,即我没有取消注释conf文件中的rtmpt bean的注释。相反,我在我的应用程序的web.xml中添加了servlet映射(用于idle,fcs,open等)的条目。 RTMPT正在监听5080端口。我已经在Red5的早期版本上测试过这个版本,但问题是一样的。RTMPT连接在一段时间后关闭(一分钟内)。我已经浏览了日志,但是没有发现任何关于此的信息。此外,由于闲置时间段没有连接关闭。它与Apache有关吗?我不确定服务器是否正在关闭连接(尽管我无法找到关于关闭连接的任何日志),或者客户端关闭了它。尝试使用0.9.0和0.9.1,但没有任何结果。我听说有问题在Mac上用Red5使用RTMPT,但我在Windows上。任何指向这个问题的指针?任何帮助表示赞赏。这里是我在我的Apache Web服务器上获得的错误日志 -在一段时间后,RTMPT连接与Red5关闭

[错误](OS 10048)通常只允许使用每个套接字地址(协议/网络地址/端口)。 :代理:HTTP:尝试连接到red5serverip:5080(*)失败。

相同的日志重复四次。

下面是从Apache的一些访问日志太 -

“POST /发送/ IDTK7NOG2PXGB/803 HTTP/1.1” 200 1
“POST /发送/ IDTK7NOG2PXGB/804 HTTP/1.1” 503 323
“ POST /发送/ YXF4WTFMN8TCM/1391 HTTP/1.1" 200 8285
“POST /发送/ YXF4WTFMN8TCM/1392 HTTP/1.1” 200 1
“POST /发送/ YXF4WTFMN8TCM/1393 HTTP/1.1” 200 54
“POST /发送/ YXF4WTFMN8TCM/1394 HTTP/1.1“200 1
”POST/send/YXF4WTFMN8TCM/1395 HTTP/1.1“503 323
“POST /关闭/ IDTK7NOG2PXGB/805 HTTP/1.1” 503 323
“POST /关闭/ YXF4WTFMN8TCM/1396 HTTP/1.1” 503 323

感谢名单!

+0

尝试与专用rtmpt服务器(通过注销rtmpt豆)too.Results same.Same日志。并连接数秒后关闭。任何想法的人? RTMPT正在侦听默认端口8088. – raghav

+0

看看也@ https://maythesource.com/2016/08/11/reducing-rtmpt-disconnects-on-red5/ –

回答

1

可能你的tcp端口用完了。默认情况下,tcp连接在TIME_WAIT状态下保持4分钟,即使它已经关闭。当您的RTMPT流每秒使用5个连接时,系统将为每个连接的用户至少需要5 * 60 * 4 = 1200个端口。

通常防火墙正在限制可用端口的数量。您还可以减少tcp套接字的保持活动时间。如果你谷歌与你的Apache错误信息,你会发现足够的信息来解决这个问题。

+0

感谢您的答复。我现在使用ProxyPass与在Apache httpd conf文件中的max属性。在最大值为20时,两个连接的客户端之间的连接持续了将近一个小时,然后再次连接关闭。我仍然无法找出问题所在。 – raghav

+0

没有在Apache访问/错误日志文件中列出?否则,也许你可以尝试使用mod_status来检查Apache是​​否正在慢慢耗尽资源。另请参阅http://www.debian-administration.org/article/Monitoring_Apache_with_mod_status – user1839424

+0

或者,您可能正在遭遇问题281“RTMPT随机关闭”,请参阅http://code.google.com/p/red5/issues/detail ?id = 281您可以尝试从注释22(删除sharedObjectService excutor)的解决方法。 – user1839424

0

您的red5服务器可能会崩溃。这发生在你的RAM使用越来越多时。在这种情况下,您需要再次手动启动red5。如果这解决了你的问题,你需要升级你的RAM。在多次面对此问题后,我正在使用大约8GB的RAM。由于red5是使用JAVA编写的,因此它缺少内存。 FFMPEG很适合在低内存中使用。但我不知道如何使用ffmpeg提供聊天,确切地说。

0

503表示服务没有响应;如果你通过apache转发到red5,那么这意味着那里有问题。我建议不要使用独立的rtmpt bean;而是只使用servlet并从混合中删除apache以调试问题。

相关问题