推流端、拉流端、信令服务器的调转逻辑
两段代码共同完成 “被控端推流→信令转发→拉流端拉流” 的核心链路,具体步骤如下:
-
触发条件:拉流端(如客户端 B)向信令服务器发送 OBTAINSTREAM 命令,请求获取被控端(客户端 A)的流。
-
信令服务器通知推流端:信令服务器向客户端 A 发送 CREATESTREAM指令,要求其创建流并推流。
-
客户端 A 执行推流:
-
客户端 A 的 doCtreatStream 被调用,生成 RTMP 地址(如
rtmp://192.168.31.30:1935/live/1
)。 -
调用
startStreamCb_
启动推流(向 RTMP 服务器推送音视频数据)。 -
推流成功后,向信令服务器发送
CreateStreamReply_body
(携带流地址和成功码)。
-
-
信令服务器转发流地址:
-
信令服务器的
DoCreateStream
接收客户端 A 的应答,提取流地址。 -
遍历关联的拉流端(客户端 B),向其发送
PlayStream_body
(携带流地址和成功码)。
-
-
拉流端开始拉流:客户端 B 收到流地址后,通过 RTMP 协议连接 RTMP 服务器,调用
play
命令开始拉流。