mcpField
R
rivetkit-client-javascript

rivetkit-client-javascript

github.com/rivet-dev開発447.6k 回インストール1 日前に更新
リポジトリ

rivetkit-client-javascript について

ブラウザー、Node.js、Bun から `rivetkit/client` で Rivet Actors に接続するためのスキルです。Actor の利用、接続設定、イベント購読、低レベルの HTTP・WebSocket リクエストを扱います。

主な機能

  1. 01`createClient()` によるクライアント作成
  2. 02名前とキーによる Actor の取得
  3. 03接続パラメーターの設定
  4. 04Actor イベントの購読
  5. 05低レベル HTTP・WebSocket API の利用

活用シーン

  1. 01Rivet Actors を呼び出すブラウザーアプリの構築
  2. 02Node.js または Bun のサービスから Actor に接続
  3. 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)を構築する場合は、このスキルを使用してください。

はじめに

  1. クライアントをインストールします(最新バージョン:2.3.7)
    npm install [email protected]
    
  2. 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_NAMESPACE
  • RIVET_TOKEN
  • RIVET_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 クライアントの概要を参照してください。

クライアント以外の情報が必要ですか?

Rivet Actors、レジストリ、またはサーバー側の RivetKit について詳しく知りたい場合は、メインスキルを追加してください。

npx skills add rivet-dev/skills

バックエンドのガイダンスについては、rivetkit スキルを使用してください。

コメント