lal HTTP Notify(or Callback or Webhook)事件回调

lalserver作为流媒体服务器,可将内部的一些事件通过HTTP POST的方式,传递给业务方。

业务方结合lalserver的HTTP Notify和HTTP API,可以更好的搭建专属自己的直播系统。

业务方的URL地址在配置文件中http_notify块中配置,具体见:lal配置文件说明

HTTP Notify列表

1
2
3
4
5
6
7
1. on_update       // 定时汇报所有group、session的信息
2. on_pub_start // 别人推流到当前节点
3. on_pub_stop // 推流停止
4. on_sub_start // 别人从当前节点拉流
5. on_sub_stop // 拉流停止
6. on_rtmp_connect // 收到rtmp connect message信令
7. on_server_start // 服务启动时

名词pub,sub含义见: 《流媒体传输连接类型之session client, server, pub, sub, push, pull》

示例

所有接口使用HTTP POST方式,下面是on_pub_start的一个示例:

1
2
3
4
5
6
7
Host: 127.0.0.1:10101
User-Agent: Go-http-client/1.1
Content-Length: 207
Content-Type: application/json
Accept-Encoding: gzip

{"server_id":"1","protocol":"RTMP","app_name":"live","stream_name":"test110","url_param":"token=1111","session_id":"RTMPPUBSUB1","remote_addr":"127.0.0.1:52157","has_in_session":true,"has_out_session":false}

接口详情

1. on_update

定时汇报所有group、session的信息

1
2
3
4
{
"server_id": "1", // 配置文件中配置。当有多个lalserver向同一个业务系统地址notify时,通过该字段区分不同lalserver节点
groups: [] // 见HTTP API中/api/stat/all_group接口的data/groups字段
}

2. on_pub_start

比如使用如下命令向lalserver推送rtmp流时,on_pub_start的字段如下:

$ffmpeg -re -i wontcry.flv -c:a copy -c:v copy -f flv "rtmp://127.0.0.1:19350/live/test110?token=1111"

1
2
3
4
5
6
7
8
9
10
11
{
"server_id": "1", // 配置文件中配置。当有多个lalserver向同一个业务系统notify时,方便区分不同的lalserver
"protocol": "RTMP", // 目前只支持RTMP
"app_name": "live", // RTMP url中的app name
"stream_name": "test110", // 流名称
"url_param": "token=1111", // RTMP url中的参数
"session_id": "RTMPPUBSUB5", // 连接唯一ID
"remotet_addr": "127.0.0.1:52010" // 连接对端地址
"has_in_session": true, // 对应的group中,是否存在输入音视频数据的流
"has_out_session": false // 对应的group中,是否存在输出音视频数据的流
}

3. on_pub_stop

字段同on_pub_start

4. on_sub_start

字段同on_pub_start

5. on_sub_stop

字段同on_pub_start

6. on_rtmp_connect

1
2
3
4
5
6
7
8
{
"server_id":"1",
"session_id":"RTMPPUBSUB1",
"remote_addr":"127.0.0.1:53834",
"app":"live",
"flashVer":"FMLE/3.0 (compatible; Lavf57.83.100)",
"tcUrl":"rtmp://127.0.0.1:19350/live"
}

7. on_server_start

字段同HTTP API中/api/stat/lal_info中的data字段。

其他

1
2
3
4
5
6
7
本文档基于版本:
lal tag: v0.17.0
tag之后的commit id: 0935c58a0d0682f031b25e2b4304ecb825dd6b99
http api version: v0.1.2
http notify version: v0.0.4

文档最后修改时间:20201121

本文完,作者yoko,尊重劳动人民成果,转载请注明原文出处: https://pengrl.com/p/20101/

0%