保存と終了
作成した 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 を指定します。自分で開いたストレージは終了時に閉じます。