マイライブラリドキュメント

マルチルートサイドバー

flex-layout

  • Getting Started

  • Guides

  • Reference

typed-rx-http

  • Getting Started

  • Guides

  • Reference

global-rx-state

  • Getting Started

  • Guides

  • Reference

webflux-fe-dev-assistant

reactive-mongo-dsl

RSocket & AsyncAPI

まず、/rsocketエントリーポイントを直接使用する基本的な方法について説明します。AsyncAPIでroute/request/responseタイプとサービス関数を生成する流れは、その後のオプションのプロジェクト統合方式です。


RSocketアダプターの基本的な使用法

RSocketを使用するプロジェクトでのみピアパッケージをインストールします。

bash

基本的な使用にはAsyncAPIジェネレーターやWebFluxは必要ありません。/rsocketからcreateRSocketApiをインポートし、WebSocketエンドポイントを渡し、認証が必要な場合のみ2番目の引数としてJWTを渡します。monoまたはstreamはRxJS Observableとして返されます。

ts

オプション: AsyncAPIサービスの自動生成プロジェクト統合
RESTとほぼ同じ流れ

RESTは swagger.jsonを使用し、RSocketはasyncapi-rsocket.jsonを使用します。文書からルート、インタラクションタイプ、リクエストとレスポンススキーマを読み取り、TypeScriptタイプとサービス関数を生成します。

1. まず: rsocketCommonServiceが何であるかを全コードで確認

rsocketCommonService.tsもライブラリが自動生成するファイルではありません。createRSocketApiをプロジェクトで直接ラップして接続/JWT再利用ポリシーを一箇所にまとめ、生成されたRSocketサービスがcallRSocketMono/callRSocketStreamのみをインポートするようにするプロジェクト所有のアダプターです。以下はそのファイルの全コードです。REST共通サービスのheaderStoreからAuthorizationを読み込み、存在しない場合はtoken APIを一度呼び出してJWTを準備し、JWTが変更された場合は既存のRSocket接続を閉じて新しい接続を生成します。

rsocketCommonService.ts
ts

コピー後、headerStoreインポートパス、AsyncApiTypesの位置、トークンAPIパス、NEXT_PUBLIC_RSOCKET_URLと実際のRSocketエンドポイントをプロジェクトに合わせて修正します。

2. rsocketCommonServiceコード構成別の役割

getRSocketUrl

サーバーでは環境変数を使用し、ブラウザでは現在のプロトコルとホストを基にwsまたはwss URLを作成します。

fetchAuthorization

headerStoreにJWTがない場合、セッションクッキーを含めてトークンAPIを呼び出し、トークン、accessTokenまたはjwtフィールドから値を読み取ります。

getRsoketApi

同時に複数のリクエストが来てもトークン取得Promiseを共有し、同じJWTには既存の接続を再利用し、JWTが変更されると接続を再作成します。

resetRsoketApi

ログアウトや認証情報の削除時に現在のRSocket接続を閉じ、保存されたJWTとクライアントを初期化します。

callRSocketMono / callRSocketStream

生成されたルートタイプでリクエストとレスポンスを検査し、接続準備PromiseをRxJS Observableフローに統合してmonoまたはstreamを実行します。

3. AsyncAPIサービス生成
generateAsyncApiRSocket.cjs
js
4. 生成された関数呼び出し

次は複数の作業の処理進行状況を受け取る一般的なrequestStreamの例です。ルート文字列とイベントタイプは生成されたサービス内に含まれています。

BatchJobPage.tsx
tsx
monoとstream選択

AsyncAPIインタラクションが requestResponseの場合、生成関数はcallRSocketMonoを、 requestStream場合は callRSocketStreamを使用します。画面では両方ともObservableですが、streamは複数回 nextが呼び出される可能性があります。

© 2026 Byeolnaerim. 無断転載を禁じます。紹介プライバシーポリシー