公式パッケージ · 自動化とインフラ

リアルタイムな Next.js アプリのための Vercel インテグレーション

Vercel のプロジェクトに Hibira インテグレーションを追加してアプリを選ぶ(または作成する)と、アプリ ID、キー、シークレット、ホストが環境変数としてプロジェクトに追加されます。再デプロイしたら、ルートハンドラーから発行し、pusher-js で購読します。

  • HIBIRA_APP_ID、HIBIRA_APP_KEY、HIBIRA_APP_SECRET、HIBIRA_HOST、HIBIRA_CLUSTER と、ブラウザ用の NEXT_PUBLIC_HIBIRA_APP_KEY、NEXT_PUBLIC_HIBIRA_HOST を Production、Preview、Development に書き込みます。
  • 新しいアプリは各プロジェクトの .vercel.app ドメインからの接続を受け付けます。独自ドメインやプレビュー URL はアプリのページの Allowed origins に追加してください。
  • Next.js サンプルの Deploy with Vercel ボタンはこのインテグレーションも追加するので、複製したデモはキーをコピーせずに動きます。

サインインすると、コード例にご自身のクラスターホストが入ります。 サインイン

  1. インストール

    https://vercel.com/integrations/hibira/new
      → Add Integration → pick a team and its projects
      → sign in to Hibira → pick an app or create one → Connect
    Redeploy the projects so they load the new variables.
  2. ルートハンドラーから発行する

    // app/api/orders/route.js
    import Pusher from 'pusher';
    
    const pusher = new Pusher({
      appId: process.env.HIBIRA_APP_ID,
      key: process.env.HIBIRA_APP_KEY,
      secret: process.env.HIBIRA_APP_SECRET,
      host: process.env.HIBIRA_HOST,
      useTLS: true,
    });
    
    export async function POST(req) {
      const order = await req.json();
      await pusher.trigger('orders', 'order.created', order);
      return Response.json({ ok: true });
    }
  3. 使う

    'use client';
    import Pusher from 'pusher-js';
    
    const pusher = new Pusher(process.env.NEXT_PUBLIC_HIBIRA_APP_KEY, {
      cluster: 'hkg',
      wsHost: process.env.NEXT_PUBLIC_HIBIRA_HOST,
      forceTLS: true,
      enabledTransports: ['ws', 'wss'],
    });
    
    pusher.subscribe('orders').bind('order.created', (order) => {
      console.log('New order', order);
    });

始める前に

  • 変数は接続したときに書き込まれます。あとでアプリのシークレットをローテーションしたら、プロジェクト設定の HIBIRA_APP_SECRET を更新して再デプロイしてください。
  • 発行はサーバーコード(ルートハンドラー、サーバーアクション)からだけ行ってください。HIBIRA_APP_SECRET をクライアントコンポーネントに渡してはいけません。

ダッシュボードのアプリキーを使ってください。シークレットはサーバー側だけに置きます。チャンネル、イベント、認可エンドポイントは Pusher とまったく同じように動作します。 無料でアカウントを作成 →