SRS本身提供http callback
比如鑒權越平,客戶端開啟直播流纸泄,關閉直播流等的狀態(tài)可以以回調的方式通知到APP用戶服務器
假設使用環(huán)信的IM识虚,簡單的架構圖和流程如下圖所示
直播簡單架構
1.生成RoomID并在環(huán)信服務器IMServer上申請成功
2.appserver 根據(jù)RoomID生成推流地址liveURL
3.APP推流端根據(jù)liveURL像SRS申請推流
4.推流成功SRS直接回調給appserver一個on_publish消息
5.APP拉流端向appserver獲取到拉流地址liveURL
6.APP拉流端根據(jù)liveURL向SRS申請rtmp視頻流
7.拉流成功on_connet成功回調至APPServer檐束,房間人數(shù)+1
8.APPServer可以通過IMServer向眾拉流端和本推流端廣播xxx進入房間消息
9.各推流端可以通過IMServer在聊天室里發(fā)送文字伤溉,禮物和紅包等互動消息
10.推流端停止直播
11.SRS回調on_unpublish到appserver
SRS要實現(xiàn)與http server交互需要做兩點
1.在 compile時開啟編譯參數(shù) --with-http-callback
2.在config中加入交互狀態(tài)的回調地址般码,比如
on_connect http://127.0.0.1:8085/api/v1/clients
on_close http://127.0.0.1:8085/api/v1/clients http://localhost:8085/api/v1/clients;
官方wiki已經(jīng)提供比較完整的例子
請參考
https://github.com/ossrs/srs/wiki/v3_CN_HTTPCallback
有興趣的來一起啃源碼,直播開源qq交流群:230586765
其他相關文檔:
1.較為完整的開源直播框架[服務器乱顾,iOS板祝,android]
2.直播的帶寬與網(wǎng)絡問題解析