本文へ移動
SDK ガイド / 保存と終了

保存と終了

作成した World を開き直し、使い終わった接続を閉じます。

保存先はアプリで指定します。省略時は MemoryStorage で、ページを閉じると失われます。ブラウザーでは BrowserStorage、Node.js では DirectoryStorage を使います。

World の変更は指定した保存先へ保存されます。save は保存完了の確認です。本人の復元情報と保存先の名前はアプリが管理し、World ID だけで開き直すAPIはありません。

TypeScript · 終了と再読み込み
import { Identity, World } from "@tablebox/sdk";
import { BrowserStorage } from "@tablebox/sdk/storage";

const identity = await Identity.generate();
const recovery = await identity.exportRecovery();
// recovery は本人を復元できる秘密情報。アプリの保存方針に従って保管する
const storage = await BrowserStorage.open("my-world");
const blobs = await BrowserStorage.open("my-world-assets");
const world = await World.create({ identity, name: "My world", storage, blobs });

await world.save();
await world.close();

// 保存先と同じ本人の復元情報を使って開く
const restoredIdentity = await Identity.fromRecovery(recovery);
const reopened = await World.open(storage, { identity: restoredIdentity, blobs });

await reopened.close();
await storage.close();
await blobs.close();

共有中は先に session.leave() で退出します。接続全体の終了は connection.close()、モデルの終了は world.close() です。Node.js での永続化には @tablebox/sdk/storage-node DirectoryStorage を指定します。自分で開いたストレージは終了時に閉じます。