RSocket & AsyncAPI
Pertama, menjelaskan cara dasar menggunakan titik masuk /rsocket secara langsung. Alur untuk menghasilkan tipe route/request/response dan fungsi layanan di AsyncAPI adalah metode integrasi proyek opsional berikutnya.
Cara dasar penggunaan adapter RSocket.
Hanya proyek yang menggunakan RSocket yang perlu menginstal paket peer.
Penggunaan dasar tidak memerlukan AsyncAPI generator atau WebFlux. Impor createRSocketApi dari /rsocket dan berikan endpoint WebSocket, serta hanya berikan JWT sebagai argumen kedua jika diperlukan. mono atau stream akan dikembalikan sebagai Observable RxJS.
Opsional: Integrasi proyek pembuatan layanan AsyncAPI otomatis.
Alur yang hampir sama dengan REST
REST menggunakan swagger.jsonsedangkan RSocket menggunakanasyncapi-rsocket.jsonMembaca route, interaction type, request dan response schema dari dokumen untuk menghasilkan tipe TypeScript dan fungsi service.
1. Pertama: Periksa apa itu rsocketCommonService dengan kode lengkap.
rsocketCommonService.ts juga bukan file yang dihasilkan secara otomatis oleh pustaka. Menghubungkan createRSocketApi secara langsung di proyek dan menempatkan kebijakan penggunaan kembali JWT di satu tempat, sehingga layanan RSocket yang dihasilkan hanya mengimpor callRSocketMono/callRSocketStream. Berikut adalah kode lengkap dari file tersebut. Membaca Authorization dari headerStore layanan publik REST, dan jika tidak ada, memanggil token API sekali untuk menyiapkan JWT, dan jika JWT berubah, menutup koneksi RSocket yang ada dan membuat koneksi baru.
rsocketCommonService.ts
tsSetelah menyalin, sesuaikan jalur impor headerStore, lokasi AsyncApiTypes, jalur token API, NEXT_PUBLIC_RSOCKET_URL, dan endpoint RSocket yang sebenarnya sesuai dengan proyek.
2. Peran berdasarkan struktur kode rsocketCommonService.
getRSocketUrl
Di server, menggunakan variabel lingkungan dan di browser, membuat URL ws atau wss berdasarkan protokol dan host saat ini.
fetchAuthorization
Memanggil token API dengan menyertakan cookie sesi saat tidak ada JWT di headerStore dan membaca nilai dari field token, accessToken, atau jwt.
getRsoketApi
Membagikan Promise pencarian token meskipun ada beberapa permintaan yang masuk secara bersamaan, menggunakan kembali koneksi yang ada untuk JWT yang sama, dan membuat koneksi baru jika JWT berubah.
resetRsoketApi
Saat logout atau menghapus informasi otentikasi, menutup koneksi RSocket saat ini dan menginisialisasi JWT dan klien yang disimpan.
callRSocketMono / callRSocketStream
Memeriksa request dan response dengan tipe route yang dihasilkan, dan menggabungkan Promise persiapan koneksi ke dalam aliran Observable RxJS untuk menjalankan mono atau stream.
3. Pembuatan layanan AsyncAPI.
generateAsyncApiRSocket.cjs
js4. Memanggil fungsi yang dihasilkan.
Berikut adalah contoh umum requestStream yang menerima kemajuan pemrosesan dari beberapa pekerjaan. String route dan tipe event ada di dalam service yang dihasilkan.
BatchJobPage.tsx
tsxJika interaction AsyncAPI adalah
maka fungsi yang dihasilkan adalah requestStreamjika,callRSocketStreammaka nextakan menggunakan. 3. Memanggil fungsi yang dihasilkanDi layar, keduanya adalah Observable tetapi stream dapat dipanggil beberapa kali. Streaming & UploadrequestResponse