Tài liệu của tôi

Thanh bên đa gốc

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

Đầu tiên, giải thích về cách sử dụng cơ bản của điểm vào /rsocket. Luồng tạo route/request/response type và service function trong AsyncAPI là cách tích hợp dự án tùy chọn tiếp theo.


Cách sử dụng cơ bản của RSocket adapter.

Chỉ cài đặt peer package trong dự án sử dụng RSocket.

bash

Việc sử dụng cơ bản không yêu cầu AsyncAPI generator hay WebFlux. Nhập createRSocketApi từ /rsocket và truyền endpoint WebSocket, chỉ truyền JWT làm tham số thứ hai khi cần xác thực. mono hoặc stream sẽ được trả về dưới dạng RxJS Observable.

ts

Tùy chọn: Tích hợp dự án tự động tạo service AsyncAPI.
Luồng gần giống như REST

REST sử dụng Tuy nhiên, tôi không muốn chỉ sử dụng typed-rx-http cho WebFlux. Ngay cả khi backend không tạo Swagger trực tiếp, nếu có kiểu TypeScript phù hợp với đặc tả OpenAPIvà RSocket sử dụngasyncapi-rsocket.jsonTài liệu đọc route, loại tương tác, schema yêu cầu và phản hồi để tạo kiểu TypeScript và hàm dịch vụ.

1. Đầu tiên: Kiểm tra rsocketCommonService là gì bằng mã nguồn đầy đủ.

rsocketCommonService.ts cũng không phải là file được tự động tạo bởi thư viện. Bọc createRSocketApi trong dự án để kết nối/chính sách tái sử dụng JWT ở một nơi, và làm cho service RSocket được tạo chỉ nhập callRSocketMono/callRSocketStream. Dưới đây là mã nguồn đầy đủ của file đó. Đọc Authorization từ headerStore của service công cộng REST, nếu không có thì gọi token API một lần để chuẩn bị JWT, và nếu JWT thay đổi, đóng kết nối RSocket hiện tại và tạo kết nối mới.

rsocketCommonService.ts
ts

Sau khi sao chép, sửa đổi đường dẫn import headerStore, vị trí AsyncApiTypes, đường dẫn API token, NEXT_PUBLIC_RSOCKET_URL và endpoint RSocket thực tế cho phù hợp với dự án.

2. Vai trò của mã nguồn rsocketCommonService theo cấu trúc.

getRSocketUrl

Máy chủ sử dụng biến môi trường và trình duyệt tạo URL ws hoặc wss dựa trên protocol và host hiện tại.

fetchAuthorization

Khi headerStore không có JWT, gọi API token bao gồm cookie phiên và đọc giá trị từ các trường token, accessToken hoặc jwt.

getRsoketApi

Chia sẻ Promise truy vấn token ngay cả khi có nhiều yêu cầu đến, tái sử dụng kết nối hiện tại cho cùng một JWT và tạo lại kết nối khi JWT thay đổi.

resetRsoketApi

Khi đăng xuất hoặc xóa thông tin xác thực, đóng kết nối RSocket hiện tại và khởi tạo lại JWT và client đã lưu.

callRSocketMono / callRSocketStream

Kiểm tra request và response với kiểu route đã tạo, kết hợp Promise chuẩn bị kết nối vào luồng Observable RxJS để thực thi mono hoặc stream.

3. Tạo service AsyncAPI.
generateAsyncApiRSocket.cjs
js
4. Gọi hàm đã tạo.

Dưới đây là một ví dụ requestStream thông thường nhận tiến trình xử lý của nhiều công việc. Chuỗi route và loại sự kiện nằm trong dịch vụ đã tạo.

BatchJobPage.tsx
tsx
Nếu tương tác AsyncAPI là

thì hàm tạo là requestResponse.callRSocketStreamNếu không, requestStreamsẽ sử dụng. 3. Gọi hàm đã tạo.Trên màn hình, cả hai đều là Observable nhưng stream có thể được gọi nhiều lần. next.

© 2026 Byeolnaerim. Bảo lưu mọi quyền.Giới thiệuChính sách xử lý thông tin cá nhân