srs之防盗链配置及使用
2016-03-04 07:29
218 查看
防盗链
防盗链的功能基本使用HTTPCallback来实现那httpcallback是咋回事呢,就是在srs中某个事件发生的时候,srs会回调相应的url,并且将相关的信息post上去,然后你根据post上来的信息做出相应的动作,就是返回不同的值
都有哪些事件呢
<code class="hljs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">on_connect 当客户端连接到指定的vhost和app时 on_close 当客户端关闭连接,或者SRS主动关闭连接时 on_publish 当客户端发布流时 on_unpublish 当客户端停止发布流时 on_play 当客户端开始播放流时 on_stop 当客户端停止播放时</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul>
httpcallback配置
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">vhost test.com { http_hooks { enabled on; on_connect <span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">http:</span>/<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/127.0.0.1:8085/api</span><span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/v1/clients</span>; } }</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul>
那到底怎样实现防盗链呢,举个栗子吧,srs配置就上面那样,假如我们有一个流rtmp://test.com/live/livestream
我要加上防盗链,此时访问的url会变成rtmp://test.com/live/livestream?key=91D4929E1810F90B&time=1442567098
防盗链的信息就放在query中key和time中,当客户端来访问的时候,就会触发on_connect事件,继而srs回调
http://127.0.0.1:8085/api/v1/clients这个地址,并且将请求的url等信息post上来,我们只要验证key和time是否正确就可以了
如果正确返回200状态码内容为0,srs则继续服务此客户端
如果不正确返回200状态码内容为-1,srs则会断开此客户端
相关文章推荐
- 自动化运维工具puppet安装配置
- HOJ 2133&POJ 2964 Tourist(动态规划)
- HOJ 2133&POJ 2964 Tourist(动态规划)
- Java中的多态的详细讲解
- DDOS--DNS Query Flood
- [LeetCode] Meeting Rooms 会议室
- OSChina 周五乱弹 ——论HR的日常心塞
- 3309: DZY Loves Math 莫比乌斯反演
- java8新特性2-方法引用
- redis 安装配置
- 夺命雷公狗---微信开发39----微信语言识别接口1
- 54. Spiral Matrix
- 基于RxJava、RxAndroid的EventBus实现
- 准备 KVM 实验环境 - 每天5分钟玩转 OpenStack(3)
- Handmade Hero全程直播游戏引擎开发
- android调用第三方库——第一篇 (转载)
- 准备 KVM 实验环境 - 每天5分钟玩转 OpenStack(3)
- Repository、IUnitOfWork 和 IDbContext
- 夺命雷公狗---微信开发38----临时二维码
- Python图像处理库PIL的ImageOps模块介绍