使用Janus作爲對講服務器的後臺框架和業務流程

對講後臺業務架構圖如下圖:

 

圖1、對講後臺業務架構圖

 

通過NGINX負載Janus http服務器的API接口,通過該API接口可以獲取可用Janus服務器的IP和端口;客戶端拿到可用對講服務器的IP和端口後,通過WebSocket連接到該服務器,並保持長連接,客戶端進入會議室時,則複用這條長連接;如果進入其他會議室,則需要重新獲取可用的Janus服務器IP和端口,並重覆上述過程;多個對講服務器之間通過RabbitMQ共享數據,三個服務器之間對等對外提供服務。

 

客戶端進入會議室對講主要流程:

客戶端加入會議室後,使用兩個peerconnection分別用來做publisher角色和subscriber角色類型通信,publisher主要用來講話的通道,subscriber則主要用來聽對講的通道;每次講話前都需要申請TBCP講話權限,獲取成功,則開啓錄音,併發送數據,否則不開啓錄音;如果其他人在講話,則打開播放器,開始播放聲音,主要業務流程如下圖:

                 

圖2、對講客戶端主要業務

 

詳細的客戶端加入流程如下圖3所示:

圖3、對講加入羣組主要業務流程

退出會議室時,一定要保證兩個Peerconnection的連接都能同服務器斷開;

斷網重連流程:如果碰到斷網重連時,需要重新獲取該房間的janus服務器的IP和端口,並在重連WebSocket成功後,重走圖3的流程,完成重新自動進入對講房間的工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章