クライアントをセッションに接続する
フロントエンドでライブセッションに参加し、アクターとメッセージを送受信する必要がある場合は、クライアントをアクターセッションに接続します。 クライアントをセッションに接続するには:base44.actors.ActorName(sessionId)を呼び出してセッションを選択します。.connect()を呼び出して WebSocket 接続を開きます。conn.subscribe()を呼び出して、アクターからのメッセージのリスナーを登録します。conn.send()を呼び出して、アクターにメッセージを送信します。
chatRoom アクターのセッションに接続し、メッセージをリッスンして、メッセージを送信します。
tick を実行する
クライアントがセッションにいる間、一定の間隔で処理を繰り返す必要がある場合は、tick を実行します。たとえば、ゲームの状態のブロードキャストや、ラウンドのタイマーの更新です。 tick を実行するには:tickIntervalMsに間隔の長さをミリ秒で設定します。shouldTick()を実装し、tick を続ける場合はtrueを、停止する場合はfalseを返します。handleTick()で、各間隔の処理を実行します。
wake をスケジュールする
セッションがアクティブかアイドルかに関係なく、特定の時刻に 1 回処理を実行する必要がある場合は、wake をスケジュールします。たとえば、30 秒後のターン終了や、空のロビーのクローズです。 wake をスケジュールするには:- キーと時刻を指定して
schedule()を呼び出し、wake を設定します。 handleWake()でキーを確認し、その wake の処理を実行します。- wake が不要になったら、キーを指定して
cancelSchedule()を呼び出します。
クライアント接続を管理する
セッションに参加できる人を決めたり、特定のクライアントに返信したり、セッション内のすべてのクライアントに送信したりする必要がある場合は、クライアント接続を管理します。 クライアント接続を管理するには:handleConnect()でconn.identityを確認し、conn.reject()を呼び出してクライアントを拒否します。conn.send()を呼び出して、そのクライアントにのみ返信します。handleMessage()でbroadcast()を呼び出し、接続中のすべてのクライアントに送信します。送信者を識別するには、connのフィールドをメッセージに含めます。
セッションデータを永続化する
値をアイドル期間後も残す必要がある場合は、セッションデータを永続化します。たとえば、盤面、履歴リスト、現在のターンです。 セッションデータを永続化するには:handleStart()で、this.storageから値をクラスフィールドに読み込みます。- 変更のたびに
this.storage.put()を呼び出して、更新した値を保存します。 - セッションをリセットするには、
this.storage.delete()またはthis.storage.deleteAll()を呼び出します。
セッションからエンティティデータを書き込む
セッションでアプリのレコードを作成または更新する必要がある場合は、エンティティデータを書き込みます。たとえば、最終スコアや完了した注文です。 セッションからエンティティデータを書き込むには:- 書き込む前に、受信メッセージを検証します。
conn.identity.userIdからユーザー ID を読み取ります。- 昇格したアクセスには
this.client.asServiceRoleを使用します。セッション ID などの安定したキーで書き込むと、ハンドラーが繰り返し実行されても同じレコードが更新されます。
シークレットが必要な処理でバックエンド関数を呼び出す
アクターはsecrets.get() でアプリのシークレットを読み取れます。API キーを使って外部 API を呼び出すなど、ハンドラーでシークレットを使う処理が必要な場合は、バックエンド関数 を呼び出すことをおすすめします。関数はシークレットを読み取り、シークレットではなく結果を返します。
アクターからバックエンド関数を呼び出すには:
secrets.get()でシークレットを読み取り、処理を行って結果を返すバックエンド関数を作成します。- ハンドラーで、関数名と送信するデータを指定して
this.client.functions.invoke()を呼び出します。 - 結果をセッションで使用します。たとえば、接続中のクライアントにブロードキャストします。
関連項目
- アクター概要: 概念と用語
- アクターを作成する: アクターファイルと最小限のクラス
- アクターのファイルとコード: バックエンドクラス API の完全なリファレンス
actors deploy: ローカルのアクターをデプロイします
このページは AI によって翻訳されました。最も正確で最新の情報については、英語版 を参照してください。