rivetkit-client-javascript について
ブラウザー、Node.js、Bun から `rivetkit/client` で Rivet Actors に接続するためのスキルです。Actor の利用、接続設定、イベント購読、低レベルの HTTP・WebSocket リクエストを扱います。
主な機能
- 01`createClient()` によるクライアント作成
- 02名前とキーによる Actor の取得
- 03接続パラメーターの設定
- 04Actor イベントの購読
- 05低レベル HTTP・WebSocket API の利用
活用シーン
- 01Rivet Actors を呼び出すブラウザーアプリの構築
- 02Node.js または Bun のサービスから Actor に接続
- 03Actor への直接 HTTP・WebSocket リクエスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rivet-dev/ skills --skill rivetkit-client-javascriptインストール後、Claude Code で/rivetkit-client-javascriptを入力して読み込まれたか確認します。
同梱ファイルindex.json
詳細
RivetKit JavaScript クライアント
rivetkit/client を使用して Rivet Actors に接続する JavaScript クライアント(ブラウザー、Node.js、または Bun)を構築する場合は、このスキルを使用してください。
はじめに
- クライアントをインストールします(最新バージョン:2.3.7)
npm install [email protected] createClient()でクライアントを作成し、アクターのアクションを呼び出します。
エラー処理の方針
- デフォルトでは、フェイルファストの動作を優先してください。
- 絶対に必要な場合を除き、
try/catchは使用しないでください。 catchを使用する場合は、少なくともエラーをログに記録するなど、明示的に処理してください。
はじめに
開始するには、バックエンドのクイックスタートガイドを参照してください。
最小限のクライアント
ステートレスとステートフル
アクターの取得
接続パラメーター
静的な接続パラメーターには params を使用してください。各 .connect() や再接続の前に JWT を更新する場合など、接続試行の間に値が変わる可能性がある場合は getParams を使用してください。
イベントの購読
接続のライフサイクル
低レベルの HTTP と WebSocket
onRequest または onWebSocket を実装しているアクターでは、これらを直接呼び出してください。
import { createClient } from "rivetkit/client";
const client = createClient();
const handle = client.chatRoom.getOrCreate(["general"]);
const response = await handle.fetch("history");
const history = await response.json();
const ws = await handle.webSocket("stream");
ws.addEventListener("message", (event) => {
console.log("message:", event.data);
});
ws.send("hello");
バックエンドからの呼び出し
エラー処理
概念
キー
キーはアクターインスタンスを一意に識別します。階層的なアドレス指定には、複合キー(配列)を使用してください。
userId にユーザーデータが含まれる場合は、"org:${userId}" のような文字列補間でキーを構築しないでください。キーインジェクション攻撃を防ぐため、代わりに配列を使用してください。
環境変数
createClient() は次の環境変数を自動的に読み取ります。
RIVET_ENDPOINT(エンドポイント)RIVET_NAMESPACERIVET_TOKENRIVET_POOL
未設定の場合は、デフォルトで http://localhost:6420 を使用します。RivetKit はデフォルトでポート 6420 で実行されます。
エンドポイントの形式
エンドポイントでは URL 認証構文を使用できます。
https://namespace:[email protected]
認証情報を含めずにエンドポイントを渡し、RIVET_NAMESPACE と RIVET_TOKEN を別々に指定することもできます。サーバーレス環境にデプロイする場合は、アプリの /api/rivet URL を使用してください。詳しくはエンドポイントを参照してください。
高度な使い方
Ready 待機のスキップ
通常、リクエストはアクターがトラフィックを受け付ける準備ができるまで、ゲートウェイで保留されます。アクターの起動中(onWake が完了する前)や、スリープ猶予期間中(onSleep、waitUntil の実行中、および切断処理の完了待ち)は、アクターは準備ができていません。
低レベルの HTTP および WebSocket APIで skipReadyWait: true を指定すると、リクエストが直ちに配信され、どちらの期間でもアクターの onRequest / onWebSocket ハンドラーに到達します。
import { createClient } from "rivetkit/client";
const client = createClient();
const handle = client.chatRoom.getOrCreate(["general"]);
const response = await handle.fetch("/healthz", {
skipReadyWait: true,
});
const ws = await handle.webSocket("probe", undefined, {
skipReadyWait: true,
});
それでも、一時的なライフサイクルエラーやゲートウェイエラーが返されることがあります。アクターが再び利用可能になったら、再試行してください。
actor.stopping:アクターが完全に停止しています。つまり、スリープ猶予期間は終了していますが、まだ再起動していません。guard.actor_stopped_while_waiting:リクエストはアクタートンネルに到達しましたが、ゲートウェイが応答を受け取る前にアクターが停止しました。guard.tunnel_request_aborted:応答が開始される前に、アクタートンネルがリクエストを中止しました。guard.tunnel_message_timeout:トンネルメッセージのタイムアウト後、ゲートウェイが処理中のトンネルリクエストを破棄しました。guard.tunnel_response_closed:アクタートンネルが応答を送信する前に閉じられました。guard.gateway_response_start_timeout:アクターの応答が開始されるのを待つ間に、ゲートウェイがタイムアウトしました。
API リファレンス
パッケージ: rivetkit
RivetKit クライアントの概要を参照してください。
createClient- クライアントを作成しますClient- クライアントの型
クライアント以外の情報が必要ですか?
Rivet Actors、レジストリ、またはサーバー側の RivetKit について詳しく知りたい場合は、メインスキルを追加してください。
npx skills add rivet-dev/skills
バックエンドのガイダンスについては、rivetkit スキルを使用してください。