dubbo-php-framework的Protocol解析(一)
阿新 • • 發佈:2018-12-10
在分析TcpServer的分鐘中可以看到,worker程序啟動後的回撥函式中,框架會建立一個物件來完成後續的網路資料讀取和回覆,從這篇開始我們就分析這個物件本身,這個物件就是FSOFProtocol類的物件,引用程式碼如下:
//autoload 使用者的所有程式碼
$appRoot = AppAutoLoader::getFatherPath($appBootLoader, 1);
AppAutoLoader::addRoot($appRoot);
return new FSOFProtocol();
FSOFProtocol的程式碼位於dubbo-php-framework-master/provider/fsof/FSOFProtocol.php路徑下,根據其繼承體系,我們可以看到FSOFProtocol->BufferedProtocol->BaseProtocol->IProtocol,所以我們就從較簡單的類開始分析。
//介面定義 interface IProtocol { function setServer($server); function getAppConfig(); function onStart($server, $workerId); function onConnect($server, $client_id, $from_id); function onReceive($server,$client_id, $from_id, $data, $reqInfo = null); function onClose($server, $client_id, $from_id); function onShutdown($server, $worker_id); function onTask($serv, $task_id, $from_id, $data); function onFinish($serv, $task_id, $data); function onTimer($serv, $interval); function onRequest($request, $response); }