azure-web-pubsub-ts
Azure Web PubSub でリアルタイムアプリを構築する
Azure Web PubSub SDK を使用して、アプリケーションで WebSocket ベースのリアルタイムメッセージングを実装します。このスキルは、TypeScript による pub/sub メッセージング、グループ管理、接続ハンドリングのための本番環境対応のパターンを提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「azure-web-pubsub-ts」を使用しています。 ユーザー ID とグループメンバーシップを含むクライアントトークンを生成
期待される結果:
URL wss://resource.webpubsub.azure.com/client/access/hubs/chat?access_token=xxx、userId=user123、groups=[chat-room]、roles=[webpubsub.joinLeaveGroup, webpubsub.sendToGroup] でトークンが生成されました
「azure-web-pubsub-ts」を使用しています。 chat-room グループ内の全ユーザーにメッセージを送信
期待される結果:
グループ chat-room の 12 接続にメッセージが正常にブロードキャストされました。メッセージコンテンツ:{type: 'message', data: 'Hello everyone!'}
セキュリティ監査
安全This skill contains legitimate Azure Web PubSub SDK documentation. Static analyzer produced 35 false positive external_commands findings by misinterpreting markdown code block backticks as shell execution. Network and environment variable patterns are standard Azure SDK usage. No malicious intent detected.
中リスクの問題 (1)
低リスクの問題 (2)
リスク要因
🌐 ネットワークアクセス (2)
🔑 環境変数 (3)
品質スコア
作れるもの
リアルタイムチャットアプリケーション
Azure Web PubSub グループとユーザー宛メッセージングを使用して、ユーザー認証、グループメッセージング、プレゼンスインジケーターを備えたマルチルームチャットシステムを構築します。
ライブダッシュボード更新
ブロードキャストメッセージングを使用して、接続されたダッシュボードにリアルタイムデータ更新をプッシュします。監視システム、分析表示、またはライブメトリクス可視化に最適です。
マルチプレイヤーゲームロビー
グループと接続管理 API を使用して、プレイヤーマッチメイキング、ゲーム内メッセージング、セッション管理を備えたゲームルームを作成します。
これらのプロンプトを試す
環境変数から接続文字列を使用して Azure Web PubSub サーバー側クライアントをセットアップします。'chat' という名前のハブを作成し、基本的なクライアントアクセストークンを生成します。
ユーザー 'user123' のクライアントアクセストークンを生成します。グループへの参加、グループへの送信のロールを持たせ、'chat-room' グループに自動参加させます。有効期限を 60 分に設定します。
negotiate エンドポイント経由で接続する WebPubSubClient を作成します。connected、group-message、disconnected イベントのハンドラを登録します。接続後に 'chat-room' グループに参加します。
handleConnect 検証、handleUserEvent 処理、onConnected ロギングを備えた 'chat' ハブ用の Express ミドルウェアハンドラを実装します。認証済みユーザー用のトークンを生成する negotiate エンドポイントを含めます。
ベストプラクティス
- より良いセキュリティのため、本番環境ではアクセスキーの代わりに DefaultAzureCredential を使用する
- 初期イベントの欠落を避けるため、client.start() を呼び出す前にすべてのイベントハンドラを登録する
- handleConnect で認証を検証し、ハンドシェイクの早期段階で不正な接続を拒否する
回避
- 環境変数ではなくソースコードに接続文字列やアクセスキーを直接ハードコーディングする
- TypeScript の非 null 代入またはフォールバック値なしで process.env 変数にアクセスする
- クライアント接続状態が 'connected' であることを確認せずにメッセージを送信する