RSocket API
@byeolnaerim/typed-rx-http/rsocketconnection and route type API.
createRSocketApi<Operations>(url, jwt?, options?)
| Name | Type | Default | Description |
|---|---|---|---|
url required | string | - | RSocket WebSocket endpoint. |
jwt | string | - | setup과 요청 composite metadata에 넣는 Bearer token. |
keepAlive | number | 30000 | setup keepAlive milliseconds. |
lifetime | number | 90000 | setup lifetime milliseconds. |
dataMimeType | string | application/json | setup data MIME type. |
maxRetry | number | 8 | 자동 재연결 최대 횟수. |
baseDelay | number | 500 | 재연결 exponential backoff 시작값. |
maxDelay | number | 10000 | backoff 상한. |
jitter | number | 250 | 추가 랜덤 지연 상한. |
codec | RSocketJsonCodec | defaultRSocketJsonCodec | payload encode/decode 구현. |
maxRequest | number | 2147483647 | requestStream subscription.request(n) 값. |
RSocketApi methods
mono(route, data?)
requestResponse를 실행해 decoded response 하나를 emit하고 complete합니다. Operations가 있으면 requestResponse route와 request/response 타입이 제한됩니다.
stream(route, data?)
requestStream을 실행하고 payload마다 decoded response를 emit합니다. unsubscribe 시 remote subscription을 cancel합니다.
close()
현재 socket, 연결 중 Promise와 예약된 재연결 timer를 정리하고 CLOSED 상태로 만듭니다.
Low-level connection API
connectRSocket(options)
RSocketClient와 WebSocket transport를 만들고 ReactiveSocketLike<RSocketBuffer> Promise를 반환합니다.
RSocketReconnect
get(), getStatus(), close()를 제공하고 CLOSED/ERROR에서 exponential backoff 재연결을 관리합니다.
RSocketConnectionStatus
CONNECTED | CONNECTING | CLOSED.
defaultRSocketJsonCodec
Nullish values are empty Uint8Array, strings are encoded to UTF-8 bytes using TextEncoder, and other values are encoded to UTF-8 bytes from JSON.stringify results. Decoding reads ArrayBuffer/ArrayBufferView as UTF-8 strings, attempts JSON first, and also parses double-encoded payloads that contain JSON within a JSON string.
Route type utilities
RSocketBuffer
라이브러리 API에서 사용하는 Uint8Array 기반 binary 타입입니다. /rsocket을 사용할 때는 RSocket peer 패키지를 별도로 설치합니다.
RSocketRoute<Operations>
Operations key union. key가 없으면 string fallback.
RSocketOperationRequest
route의 request property 타입.
RSocketOperationResponse
route의 response property 타입.
RSocketOperationInteraction
route의 interaction string 타입.
RSocketStreamRoute
interaction이 requestStream인 route만 추출.
RSocketMonoRoute
interaction이 requestResponse인 route만 추출.
RSocketRequestArgs
request가 unknown/void/optional인지에 따라 data tuple 필수 여부를 계산합니다.