Mradi huu unaonyesha utiririshaji wa HTTP kwa kutumia Server-Sent Events (SSE) kwa Spring Boot WebFlux. Unajumuisha programu mbili:
- Calculator Server: Huduma ya wavuti inayoreact na kufanya mahesabu na kupeleka matokeo kwa kutumia SSE
- Calculator Client: Programu ya mteja inayotumia kiungo cha utiririshaji
- Java 17 au zaidi
- Maven 3.6 au zaidi
java/
├── calculator-server/ # Spring Boot server with SSE endpoint
│ ├── src/main/java/com/example/calculatorserver/
│ │ ├── CalculatorServerApplication.java
│ │ └── CalculatorController.java
│ └── pom.xml
├── calculator-client/ # Spring Boot client application
│ ├── src/main/java/com/example/calculatorclient/
│ │ └── CalculatorClientApplication.java
│ └── pom.xml
└── README.md
-
Calculator Server hutoa kiungo
/calculateambacho:- Kinakubali vigezo vya query:
a(nambari),b(nambari),op(operesheni) - Operesheni zinazotegemewa:
add,sub,mul,div - Hurejesha Server-Sent Events zenye maendeleo ya mahesabu na matokeo
- Kinakubali vigezo vya query:
-
Calculator Client inaunganishwa na server na:
- Inatuma ombi la kuhesabu
7 * 5 - Inatumia majibu ya utiririshaji
- Inachapisha kila tukio kwenye console
- Inatuma ombi la kuhesabu
Fungua terminal na uelekeze kwenye saraka ya server:
cd calculator-server
mvn clean package
mvn spring-boot:runServer itaanza kwenye http://localhost:8080
Utapata matokeo kama haya:
Started CalculatorServerApplication in X.XXX seconds
Netty started on port 8080 (http)
Fungua terminal mpya na uelekeze kwenye saraka ya client:
cd calculator-client
mvn clean package
mvn spring-boot:runClient itaunganishwa na server, itafanya mahesabu, na kuonyesha matokeo ya utiririshaji.
cd calculator-server
mvn clean package
java -jar target/calculator-server-0.0.1-SNAPSHOT.jarcd calculator-client
mvn clean package
java -jar target/calculator-client-0.0.1-SNAPSHOT.jarUnaweza pia kupima server kwa kutumia kivinjari cha wavuti au curl:
Tembelea: http://localhost:8080/calculate?a=10&b=5&op=add
curl "http://localhost:8080/calculate?a=10&b=5&op=add" -H "Accept: text/event-stream"Unapokimbia client, unapaswa kuona matokeo ya utiririshaji kama ifuatavyo:
event:info
data:Calculating: 7.0 mul 5.0
event:result
data:35.0
add- Jumla (a + b)sub- Toa (a - b)mul- Zidisha (a * b)div- Gawanya (a / b, hurejesha NaN ikiwa b = 0)
Vigezo:
a(inahitajika): Nambari ya kwanza (double)b(inahitajika): Nambari ya pili (double)op(inahitajika): Operesheni (add,sub,mul,div)
Jibu:
- Content-Type:
text/event-stream - Hurejesha Server-Sent Events zenye maendeleo ya mahesabu na matokeo
Mfano wa Ombi:
GET /calculate?a=7&b=5&op=mul HTTP/1.1
Host: localhost:8080
Accept: text/event-stream
Mfano wa Jibu:
event: info
data: Calculating: 7.0 mul 5.0
event: result
data: 35.0
-
Bandari 8080 tayari inatumika
- Zima programu nyingine yoyote inayotumia bandari 8080
- Au badilisha bandari ya server katika
calculator-server/src/main/resources/application.yml
-
Muunganisho umekataliwa
- Hakikisha server inaendesha kabla ya kuanzisha client
- Angalia server ilianza kwa mafanikio kwenye bandari 8080
-
Matatizo ya majina ya vigezo
- Mradi huu unajumuisha usanidi wa Maven compiler na bendera
-parameters - Ikiwa unakutana na matatizo ya kufunga vigezo, hakikisha mradi umejengwa kwa usanidi huu
- Mradi huu unajumuisha usanidi wa Maven compiler na bendera
- Bonyeza
Ctrl+Ckwenye terminal ambapo kila programu inaendesha - Au tumia
mvn spring-boot:stopikiwa inaendesha kama mchakato wa nyuma
- Spring Boot 3.3.1 - Mfumo wa programu
- Spring WebFlux - Mfumo wa wavuti unaoreact
- Project Reactor - Maktaba ya mitiririko ya reactive
- Netty - Server isiyozuia I/O
- Maven - Zana ya kujenga programu
- Java 17+ - Lugha ya programu
Jaribu kubadilisha msimbo ili:
- Ongeza operesheni zaidi za kihisabati
- Jumuisha usimamizi wa makosa kwa operesheni zisizo halali
- Ongeza ufuatiliaji wa maombi/jawabu
- Tekeleza uthibitishaji
- Ongeza vipimo vya unit
Kiarifu cha Kutotegemea:
Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kwamba tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii.