RSocket API
@byeolnaerim/typed-rx-http/rsocket的连接和路由类型API。
createRSocketApi<Operations>(url, jwt?, options?)
| Name | Type | Default | 描述 |
|---|---|---|---|
url 必需的 | 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方法
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 상태로 만듭니다.
低级连接 API
connectRSocket(options)
RSocketClient와 WebSocket transport를 만들고 ReactiveSocketLike<RSocketBuffer> Promise를 반환합니다.
RSocketReconnect
get(), getStatus(), close()를 제공하고 CLOSED/ERROR에서 exponential backoff 재연결을 관리합니다.
RSocketConnectionStatus
已连接 | 正在连接 | 已关闭.
defaultRSocketJsonCodec
nullish 值为空 Uint8Array,字符串通过 TextEncoder 转换为 UTF-8 字节,其他值则将 JSON.stringify 的结果编码为 UTF-8 字节。解码时,ArrayBuffer/ArrayBufferView 被读取为 UTF-8 字符串,并优先尝试 JSON,JSON 字符串中再次包含 JSON 的双重编码负载也会再解析一次.
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 필수 여부를 계산합니다.