淺談erlang遊戲伺服器專案–英雄遠征服務啟動流程

淺談erlang遊戲伺服器專案–英雄遠征服務啟動流程

1.看程式碼結構我們知道啟動指令碼run.sh,看指令碼中的-s sd server_start我們知道啟動介面在sd.erl的server_start函式.

2.我們開啟sd.erl找到server_start函式

從這個函式上會執行start_applications(?SERVER_APPS),通過這個函式我們找到應用配置檔案server.app

開啟此檔案:

在這個檔案中我們看到一些引數,其中我們看到mod引數,知道執行sd_server_app.erl中的start函式.

下面開啟sd_server_app.erl 我們看到有3個函式


首先我們看{ok, SupPid} =sd_sup:start_link(),這個是啟動一個監控樹程序,

然後看sd_networking:start([Ip, list_to_integer(Port), list_to_integer(Sid)]),,我們到sd_networking.erl看函式具體內容,

我們選start_kernel()函式看看

從這裡可以看出開啟一個sd_sup的子程序,模組在mod_kernel,執行函式start_link,

然後我們到mod_kernel.erl的start_link,

看這個我們知道執行回撥函式init,然後我們看到init函式裡有各種的初始化。

類似的,開啟各個模組。。。。