织梦CMS - 轻松建站从此开始!

罗索

[FMS]fms用法:穿透防火墙的分析

落鹤生 发布于 2013-04-01 21:35 点击:次 
穿透防火墙的分析,先1111是管理端口,就是fms2_console文件连接到server远程管理的时候需要用到的
TAG:

先1111是管理端口,就是fms2_console文件连接到server远程管理的时候需要用到的。
首先明确关系:
RTMP (默认端口:1935)
RTMPT ( http 隧道 - 默认端口: 80)
RTMPS ( https 隧道- 默认端口: 443)
nc.connect( "rtmp://127.0.0.1:1935/myapp”);
nc.connect( "rtmpt://127.0.0.1:80/myapp”);
nc.connect( "rtmps://127.0.0.1:443/myapp”);
rtmps用得很少。。。
看下面的代码:
fms_nc.connect(”rtmp://127.0.0.1/test”);
这行代码会自动尝试RTMP:1935 以及 RTMPT:80 两种连接方式。如果你想提高效率,指定端口来连接,那么就这样写:
fms_nc.connect(”rtmp://127.0.0.1:1935/test”); 这样他不会再尝试其他端口。
当然你会问如果要改成其他端口,在哪里可以更改:
C:Program FilesMacromediaFlash Media Server 2conf_defaultRoot_Adaptor.xml
第42行:
修改为::1935,443,8080或者你想要的::8080,80
如果你的server有多个ip:
XXX.XXX.XXX.XXX:1935, 443, 80
然后重启FMS(先stop,再start),如果你的iis或者web站点占用了80,那么会报错,更改端口为空闲的端口。
再说协议:
rtmp 全名为:real time message protocol
如果rtmp的连接方式失败(通常是防火墙阻止了该协议),那么flash可以使用rtmpt协议来建立HTTP tunneling.
fms_nc.connect(”rtmpt://ip/test”)
就可以连接成功了。

图示1:

fms如何穿透防火墙 - sumdwang -     留住

直接连接
图示2:

fms如何穿透防火墙 - sumdwang -     留住

防火墙关闭了1935,只允许80端口。那么此时你需要这么写:fms_nc.connect(”rtmpt://ip:80/test”)
图示3:

fms如何穿透防火墙 - sumdwang -     留住

  防火墙允许1935、80端口。
服务器端我们如果可以控制,当然会尽可能的打开常用端口,当然也会允许rtmp协议。如果问题出现在客户端呢?看下图:
图示4:

fms如何穿透防火墙 - sumdwang -     留住

  客户端只允许80端口,那么此时只有80端口可以连接成功。
图示5:

fms如何穿透防火墙 - sumdwang -     留住

总结:
鉴于客户端端口以及协议的不确定性,你需要准备好处理各种情况:
思路如下:
1、:1935,8080,80
2、默认使用rtmp协议以及1935、8080、80来连接,尝试2次。如果仍然failed,那么:
3、使用rtmpt协议(HTTP tunneling)来连接。
//开始
fms_nc.connect(”rtmp://www.rg4.net/test”); //会自动尝试可以使用的端口
//在onStatus函数里面监测状态 如果连续两次failed,
fms_nc.connect(”rtmpt://www.rg4.net:8080/test”)
//结束
通过HTTP tunneling建立的连接在传输视频的时候会不稳定,所以你要时刻监测nc的状况,如果断开要自动重连,简单的办法就是通过js刷新页面.

(xinsync)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201304/16574.html]
本文出处:xju.edu.cn 作者:xinsync 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容