首页 > 其他分享 >【SRS】http回调配置

【SRS】http回调配置

时间:2022-12-30 00:44:45浏览次数:68  
标签:play http sessions xxx SRS v1 api 回调

SRS作为一个高效的实时视频服务器,行业内很出名。

目前我这里通过推流rtmp到SRS,然后在Web端请求视频进行播放。

官网介绍地址:Introduction | SRS (ossrs.net)

添加回调配置

官方回调接口文档:HTTP回调 | SRS (ossrs.net)

这里以docker.conf为例,需要在vhost配置中添加http_hooks项。

我这里只使用了on_playon_stop两个回调接口。(完整的配置项,可以查看官方文档,或者full.conf文件)

vhost __defaultVhost__ {
    http_hooks {
        # 开启http回调
        enabled         on;
        on_play         http://192.168.0.159:9982/api/v1/sessions;
        on_stop         http://192.168.0.159:9982/api/v1/sessions;
    }
}

同一个接口:可以设置多个回调地址,以空格 分割,以逗号;结尾,比如:

on_play  http://192.168.0.159:9982/api/v1/sessions http://192.168.0.159:9983/api/v1/sessions;

on_play

官方文档描述:

    # when client start to play vhost/app/stream, call the hook,
    # the request in the POST data string is a object encode by json:
    #       {
    #           "action": "on_play",
    #           "client_id": 1985,
    #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
    #           "stream": "livestream", "param":"?token=xxx&salt=yyy",
    #           "pageUrl": "http://www.test.com/live.html"
    #       }
    # if valid, the hook must return HTTP code 200(Status OK) and response
    # an int value specifies the error code(0 corresponding to success):
    #       0
    # support multiple api hooks, format:
    #       on_play http://xxx/api0 http://xxx/api1 http://xxx/apiN
    on_play		http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions;

当客户端开始播放视频时,会触发此回调接口。如果允许播放,则需要返回HTTP数据,内容为0。

on_stop

官方文档描述:

	# when client stop to play vhost/app/stream, call the hook,
    # the request in the POST data string is a object encode by json:
    #       {
    #           "action": "on_stop",
    #           "client_id": 1985,
    #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
    #           "stream": "livestream", "param":"?token=xxx&salt=yyy"
    #       }
    # if valid, the hook must return HTTP code 200(Status OK) and response
    # an int value specifies the error code(0 corresponding to success):
    #       0
    # support multiple api hooks, format:
    #       on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN
    on_stop		http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions;

当客户端停止播放视频(比如关闭浏览器,或者推流异常)时,会触发此回调接口。当我们处理完后,应该返回HTTP数据,内容为0。

Docker启动

注:最新版SRS4已经发布了,我这里使用的是SRS3版本。通过-v参数,将conf目录映射到本地目录。

注:SRS在Docker中的默认目录是/usr/local/srs

sudo docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -v /home/sjt/work/srs3/conf:/usr/local/srs/conf	\
    registry.cn-hangzhou.aliyuncs.com/ossrs/srs:3 ./objs/srs -c conf/docker.conf

关于回调数据中client_id参数的注意点

使用SRS4时,发现回调返回的json数据中,client_id字段的类型是string,而在SRS3中,类型是number

需要判断应用程序中对client_id的处理,是否会因为类型与期望不一致,而导致处理异常(我的程序类型不一样就会报错)。

标签:play,http,sessions,xxx,SRS,v1,api,回调
From: https://www.cnblogs.com/ganshang/p/17013901.html

相关文章

  • JS中回调函数的概念
    概要:Js中回调函数的概念...个人理解:回调函数的定义:将一个函数作为参数的形式传入另一个函数中,那么这个函数就是回调函数,另一个函数可以决定在何时何处调用这个传入的回......
  • C#:https文件下载
    今天在.net4.5环境下用WebClient下载https的文件时,报错: 基础连接已经关闭:发送时发生错误。加上ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;......
  • java发送http请求
    java发送http请求有几种方法1、HttpURLConnection、URLConnection使用JDK原生提供的net,无需其他jar包;2、HttpClient3、Socket本文使用依赖于第三方jar包的HttpClient......
  • HTTPS 钓鱼攻击:黑客如何使用 SSL 证书假装信任
    让我们回到1994年。无需翻出寻呼机或穿上法兰绒衬衫。这是第一个SSL协议诞生的一年。它由Netscape推出,以满足对称为Internet的新奇发明增加安全性的日益增长的需......
  • HTTPS 钓鱼攻击:黑客如何使用 SSL 证书假装信任
    让我们回到1994年。无需翻出寻呼机或穿上法兰绒衬衫。这是第一个SSL协议诞生的一年。它由Netscape推出,以满足对称为Internet的新奇发明增加安全性的日益增长的需......
  • http状态码
    一、什么是状态码HTTP状态码(HTTPStatusCode)是用以表示网页服务器HTTP响应状态的3位数字代码。它由RFC2616规范定义的,并得到RFC2518、RFC2817、RFC2295、RFC2774、......
  • HttpServletResponse ServletResponse 返回响应 设置响应头设置响应正文体 重定向
    ​​​​HttpServletResponse 和ServletResponse 都是接口具体的类型对象是由Servlet容器传递过来 ServletResponse对象的功能分为以下四种:       设置响应......
  • 使用SRS和JSWebrtc实现实时播放视频
    使用SRS搭建视频服务器参见官方地址:https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started-buildhttps://github.com/ossrs/srs修改srs.conf文件将rtc节点下的rt......
  • Day 03 http模块
    http模块一、什么是http模块http模块是官方提供,用来创建web服务器的模块。通过提供的http.createServer(),就可以将普通电脑变为服务器。导入:consthttp=require('htt......
  • Harbor之https
    opensslgenrsa-outharbor-ca.keyopensslreq-x509-new-nodes-keyharbor-ca.key-subj"/CN=192.168.10.20"-days7120-outharbor-ca.crtroot@k-har:/apps/harbo......