A 罩杯
服務能力
這項能力
可讓使用者探索一或多個
FIDL 服務
執行個體。服務功能由
換
頻道
採用 Directory
通訊協定
目錄中的每個項目都公開了具名的「服務執行個體」。
library fuchsia.examples;
const MAX_STRING_LENGTH uint64 = 32;
@discoverable
protocol Echo {
EchoString(struct {
value string:MAX_STRING_LENGTH;
}) -> (struct {
response string:MAX_STRING_LENGTH;
});
SendString(struct {
value string:MAX_STRING_LENGTH;
});
-> OnString(struct {
response string:MAX_STRING_LENGTH;
});
};
service EchoService {
regular_echo client_end:Echo;
reversed_echo client_end:Echo;
};
服務實作是由使用 傳出目錄 而從其他應用程式 元件的 命名空間 ,直接在 Google Cloud 控制台實際操作。
服務執行個體
單一服務的多個已命名執行個體可以由單一元件託管。 都會出現在 命名空間 瞭解 做為服務的子目錄。 元件架構會為每個元件產生任意且不重複的 ID 服務執行個體名稱
舉例來說,如果架構產生 57dfe118a2a8
做為
在 fuchsia.examples.EchoService
服務中,取用元件則能將
使用下列命名空間路徑,要求執行個體中的通訊協定:
/svc/fuchsia.examples.EchoService/57dfe118a2a8/regular_echo
/svc/fuchsia.examples.EchoService/57dfe118a2a8/reversed_echo
提供服務功能
如要提供服務能力,元件必須宣告
從self
路。元件將託管服務能力
其
傳出目錄
,直接在 Google Cloud 控制台實際操作。
若要定義能力,請為該功能新增 capabilities
宣告:
{
capabilities: [
{
service: "fuchsia.example.ExampleService",
},
],
}
這定義了由元件代管的能力,該元件具有傳出目錄路徑
為 /svc/fuchsia.example.ExampleService
。您也可以自訂路徑:
{
capabilities: [
{
service: "fuchsia.example.ExampleService",
path: "/my_svc/fuchsia.example.MyExampleService",
},
],
}
轉送服務功能
元件轉送服務功能,方法是「公開」元件 家長為他們提供福利
如要進一步瞭解架構如何轉送元件功能, 請參閱功能轉送。
公開
公開服務能力可讓元件的父項存取該功能 功能:
{
expose: [
{
service: "fuchsia.example.ExampleService",
from: "self",
},
],
}
from: "self"
指令代表服務功能
由此元件「提供」的函式
動態集合
服務能力可透過動態集合公開:
{
collections: [
{
name: "coll",
durability: "transient",
},
],
expose: [
{
service: "fuchsia.example.ExampleService",
from: "#coll",
},
],
}
提供
如果您提供服務能力,可讓子項元件存取該功能 功能:
{
offer: [
{
service: "fuchsia.example.ExampleService",
from: "self",
to: [ "#child-a", "#child_b" ],
},
],
}
使用服務功能
如要使用服務能力,元件必須要求功能 開啟對應的路徑 命名空間 ,直接在 Google Cloud 控制台實際操作。
如要要求這項能力,請為該功能新增 use
宣告:
{
use: [
{
service: "fuchsia.example.ExampleService",
},
],
}
這會將服務填入已知路徑的元件命名空間中
/svc/fuchsia.example.ExampleService
。您也可以自訂路徑:
{
use: [
{
service: "fuchsia.example.ExampleService",
path: "/my_svc/fuchsia.example.MyExampleService",
},
],
}
如要進一步瞭解未解決要求,請參閱 通訊協定開啟的生命週期。