Appearance
me.virmesh.worldInstance.getInstance
instance id から world instance を取得します。
WorldServer が管理する 1 つの instance を取得する public action です。
クライアントはライブセッションに接続する直前にこの action で state, playerCount, worldProtocols を更新できます。
Endpoint
Request schema
query.worldIdstringRequired対象 instance が属する world identifier です。
query.instanceIdstringRequiredWorldServer が割り当てた instance identifier です。
Request example
{
"query": {
"worldId": "medi:world:ed25519:base64url-world-public-key",
"instanceId": "inst_01HZY8K7N2Q4Y6Z8A0B1C2D3E4"
}
}Responses
200status+me.virmesh.success.worldInstanceResolvedworld instance が正常に解決されたことを示します。
status+me.virmesh.success.worldInstanceResolvedworld instance が正常に解決されたことを示します。
Response body
解決された instance です。
References obj+me.virmesh.worldInstance.instance : WorldServer 上で稼働している world instance を表す object です。
idstringRequiredWorldServer が割り当てる instance identifier です。不透明な文字列として扱います。
worldIdstringRequiredこの instance が属する world identifier です。形式は medi:world:<scheme>:<publicKey> です。
endpointstringRequiredこの instance を管理する WorldServer の absolute URL です。
namestringOptional表示用の instance 名です。
statestringRequiredopen, full, closed のいずれかです。
playerCountintegerRequired現在参加している player 数です。
capacityintegerRequired参加可能な最大 player 数です。
joinPolicystringRequiredpublic, invite, private のいずれかです。
createdAtintegerRequiredinstance を作成した epoch second です。
updated_atintegerRequiredinstance metadata を更新した epoch second です。
worldProtocolsobject[]Requiredこの instance に接続するための protocol 一覧です。各要素は name, version, information を持ちます。
worldProtocols[].namestringRequiredprotocol identifier です。例: me.virmesh.world.websocket。
worldProtocols[].versionstringRequiredprotocol version です。
worldProtocols[].informationobjectRequired当該プロトコルがこの instance への接続に必要とするパラメータです。キー・型・意味は worldProtocols[].name で識別されるプロトコル仕様が定義します。
Response example
{
"payload": {
"instance": {
"id": "inst_01HZY8K7N2Q4Y6Z8A0B1C2D3E4",
"worldId": "medi:world:ed25519:base64url-world-public-key",
"endpoint": "https://worlds.example.com/",
"name": "Main",
"state": "open",
"playerCount": 12,
"capacity": 32,
"joinPolicy": "public",
"createdAt": 1770000000,
"updated_at": 1770000100,
"worldProtocols": [
{
"name": "me.virmesh.world.websocket",
"version": "1.0.0",
"information": {
"uri": "wss://worlds.example.com/instances/inst_01HZY8K7N2Q4Y6Z8A0B1C2D3E4/session"
}
}
]
}
}
}me.virmesh.worldInstance.getInstance が正常終了し、指定された instance を返したことを示します。
400status+me.virmesh.http.invalid_queryquery parameter の組み合わせまたは形式が不正であることを示します。
status+me.virmesh.http.invalid_queryquery parameter の組み合わせまたは形式が不正であることを示します。
この status は route が期待する query parameter の条件を満たしていない場合に返ります。
resolveHandle では id と handle の同時指定、未指定、未知の key を拒否します。
resolveWorld では worldAddress と worldId の同時指定、未指定、未知の key を拒否します。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。
handle query is ambiguous
{
"status": "status+me.virmesh.http.invalid_query",
"payload": {
"message": "Specify exactly one of query.id or query.handle."
}
}404status+me.virmesh.world.not_found指定された world が見つからないことを示します。
status+me.virmesh.world.not_found指定された world が見つからないことを示します。
この status は query.worldId に対応する world manifest を WorldServer が保持していない場合に返ります。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。
404status+me.virmesh.worldInstance.not_found指定された world instance が見つからないことを示します。
status+me.virmesh.worldInstance.not_found指定された world instance が見つからないことを示します。
この status は query.instanceId に対応する instance を WorldServer が保持していない場合に返ります。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。