目錄
前言
上篇文章對MediaSoup的環境部署和運行demo做了簡單的瞭解 【Mediasoup】環境部署與demo搭建,本章節主要對MediaSoup的源碼進行調試,以及運行時分析、調試、查看核心信息。
在下一篇文章中將對MediaSoup的源碼進行分析和架構的講解。
Mediasoup Demo分析
目錄 | 作用 |
app | 客戶端代碼 |
broadcasters | 廣播,單向傳輸,只有去或者只有回 |
server | 服務端Demo |
server.js | Demo主程序 |
config.js | 配置文件 |
cert | 證書及密鑰 |
connect.js | 對後面interactiveClient.js封裝 |
lib | server.js使用的庫文件 |
Logger.js | 打印日誌 |
Room.js | 房間管理及信令處理 |
interactiveClient.js | 運行時內部信息查詢客戶端 |
interactiveServer.js | 運行時內部信息查詢服務端 |
調試方法
Nodejs的調試方法
- cd server
- node --inspect server.js
1:如果用服務程序運行在虛擬機Linxu&雲服務器系統上調試則:
node --inspect-brk=192.168.11.18:9229 server.js 192.168.11.18是虛擬機的IP或者公網的IP
2:如果用服務程序調試的時候運行在本地Mac上:
node --inspect-brk server.js
運行之後的結果:
打開Goggle瀏覽器,輸入
chrome://inspect
首次需要添加需要調試的設備,點擊Configer 添加相對應的調試端IP和端口,如下圖
添加成功之後在 Remote Target 會出現調試的目標,如下圖,點擊inspect開始設置斷點以及調試。
調試界面如下:
Demo Dump工具
1:在啓動之前設置以下環境
export INTERACTIVE=1
2:服務器啓動完之後執行connect.js
node connect.js
這種Dump工具可以在不同的終端上執行,已經發佈線上的程序可以用這種環境Dump,而第一種一般只在調試的時候使用。
具體實操:
啓動後會進入命令行模式
其中可以通過 h & help 查看各個模塊dump的命令
(街截取部分)
- usage
顯示Node.js和mediashoup工作進程的CPU和內存使用情況
- logLevel level
更改所有mediasoup工作進程中的日誌級別
- logTags [tag] [tag]
更改所有mediasoup工作進程中的日誌tag(值用空格分隔)
- dw, dumpWorkers
打印Worker數量
以此類推 dumpxxx 打印模塊數量以及連上的一些各種參數
statsxxx 顯示這些模塊運行的狀態和統計信息
- t, terminal
打開另一種終端模式,在這種模式可以打印出其他一些信息
注意:有些信息需要打開客戶端,並且有1個或者1個以上客戶端才能顯示一些狀態信息,那麼這些信息Dump出來後續很利於去分析源代碼。
編碼閱碼工具
MediaSoup 源碼分爲2部分
1:NodeJs
2:C++
每個人針對自己的偏好選擇閱讀源碼和編輯源碼的工具,筆者這邊只是推薦。
對於NodeJs 使用
Visual Studio Code
下載
官網下載 https://code.visualstudio.com/
編輯器設置 https://www.jianshu.com/p/95c4c869bff1
C++部分而言,也可以直接使用vsc直接編碼閱讀源碼
C++部分源碼
source insight
下載
官網下載 https://www.sourceinsight.com/ (需要付費,據說網上可以下載到破解版)