Mradi huu unaonyesha utiririshaji wa HTTP ukitumia Server-Sent Events (SSE) pamoja na Spring Boot WebFlux. Unajumuisha programu mbili:
- Calculator Server: Huduma ya wavuti ya ki-reactive inayofanya mahesabu na kutiririsha 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
/calculateendpoint that:- Accepts query parameters:
a(number),b(number),op(operation) - Supported operations:
add,sub,mul,div - Returns Server-Sent Events with calculation progress and result
- Accepts query parameters:
-
The Calculator Client connects to the server and:
- Makes a request to calculate
7 * 5 - Inatumia majibu ya utiririshaji
- Inachapisha kila tukio kwenye console
- Makes a request to calculate
Fungua terminal na nenda kwenye saraka ya server:
cd calculator-server
mvn clean package
mvn spring-boot:runServer itaanzishwa kwenye http://localhost:8080
Utapata matokeo kama haya:
Started CalculatorServerApplication in X.XXX seconds
Netty started on port 8080 (http)
Fungua terminal mpya na nenda kwenye saraka ya client:
cd calculator-client
mvn clean package
mvn spring-boot:runClient itaunganishwa na server, itafanya hesabu, na itaonyesha 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 ukitumia 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"Unapochukua client, unapaswa kuona matokeo ya utiririshaji kama ifuatavyo:
event:info
data:Calculating: 7.0 mul 5.0
event:result
data:35.0
add- Addition (a + b)sub- Subtraction (a - b)mul- Multiplication (a * b)div- Division (a / b, returns NaN if b = 0)
Parameters:
a(required): First number (double)b(required): Second number (double)op(required): Operation (add,sub,mul,div)
Response:
- Content-Type:
text/event-stream - Hurejesha Server-Sent Events yenye maendeleo ya hesabu na matokeo
Ombi la Mfano:
GET /calculate?a=7&b=5&op=mul HTTP/1.1
Host: localhost:8080
Accept: text/event-stream
Jibu la Mfano:
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
-
Connection refused
- Make sure the server is running before starting the client
- Check that the server started successfully on port 8080
-
Parameter name issues
- This project includes Maven compiler configuration with
-parametersflag - If you encounter parameter binding issues, ensure the project is built with this configuration
- This project includes Maven compiler configuration with
- Press
Ctrl+Cin the terminal where each application is running - Or use
mvn spring-boot:stopikiwa unaiendesha kama mchakato wa nyuma
- Spring Boot 3.3.1 - Mfumo wa programu
- Spring WebFlux - Mfumo wa wavuti wa ki-reactive
- Project Reactor - Maktaba ya mitiririko ya ki-reactive
- Netty - Server isiyozuia I/O
- Maven - Zana ya kujenga programu
- Java 17+ - Lugha ya programu
Jaribu kubadilisha msimbo ili:
- Kuongeza mifumo mingine ya kihesabu
- Kujumuisha utambuzi wa makosa kwa mifumo isiyo sahihi
- Kuongeza ufuatiliaji wa maombi/jawabu
- Kutekeleza uthibitishaji
- Kuongeza majaribio ya kitengo
Kiarifa cha Kutohusika:
Nyaraka hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Nyaraka ya asili katika lugha yake ya asili inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatubeba dhamana kwa kutoelewana au tafsiri potofu zitokanazo na matumizi ya tafsiri hii.