2012-10-16 48 views
0

嗨有一台播放器在端口1935上使用rtmp数据包在防火墙上工作。我得到的问题是在启动播放器后20秒开始流式传输。防火墙在rtmp flash播放器上延迟20秒

什么可能导致此问题。

当防火墙关闭时,玩家开始立即从开门射出。

+1

听起来像网络滞后;也许防火墙以某种方式解析每个数据包? – JeffryHouser

+0

我试过这个http://dl.dropbox.com/u/2918563/flvplayback.swf进行流式处理,并且它运行良好,即使防火墙处于打开状态,它也能很好地传输流。所以我猜测玩家有一些问题。什么shoudl我添加到AS3代码流rtmp上端口1935 – Vlad

回答

0

事实证明,玩家获取主机名而不是IP地址进行流式传输,因此它需要20秒才能完成。好吧,我们发现DNS并未正确解析流式传输的URL :)因此,使用真实IP地址来流式传输而不是主机名称

1

RTMP上的Flash播放器有一个回退链,它们试图在TCP:1935处连接,如果失败,请尝试TCP:80。此回退链可能需要一段时间,特别是如果防火墙丢弃1935个数据包而不是拒绝它们。

如果您有权访问防火墙配置,请尝试将1935策略更改为允许或拒绝(但不丢弃)。

否则,如果您可以修改HTML,则可以尝试将RTMP链接URL架构更改为“rtmpt://”而不是“rtmp://”。这将导致播放器立即尝试端口80(尽管当端口1935上的RTMP工作时,它比端口80上的RTMPT更好)。

+0

我在1935年我的代码rtmp错过了什么?我已经为rtmp实现了标准的as3 netconnection和netstream,并且播放器工作良好,但是当firwall处于开启状态时,它会延迟20秒,直到开始流式传输 – Vlad

+0

如果您在as3中打开“rtmp://”资源,并且端口1935可以不会连接,它会尝试在端口80上重新连接(不需要你明确地编写任何代码)。如果使用“rtmpt://”,它将强制连接从一开始就位于端口80上。 – onon15