srs之防盗链配置及使用

防盗链

防盗链的功能基本使用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则会断开此客户端

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值