Spring Bootチャットサーバ-5強SSEプロトコルとTextEventStreamの作成
7958 ワード
ChatController.java
ブラウザ接続ビュー
@RequiredArgsConstructor
パーティションの説明
@NoArgConstructorパラメータのないデフォルトジェネレータの作成
Student std = new Student();
@RequiredArgConstructor finalまたは@NonNullの作成者のみを参照
Student std = new Student(1L);
@AllArgConstructorすべてのフィールド値をパラメータとするジェネレータを作成
student std=new student(1 L、「洪吉童」、20);
https://invicr.github.io/2020/03/31/Spring-NoArgsConstructor-RequiredArgsConstructor-AllArgsConstructor/
@RestController
コントローラクラスに@RestControllerを追加すると、コントローラクラスサブメソッドに@ResponseBody操作を追加することなく文字列やJSONなどを送信できます.
https://doctorson0309.tistory.com/664
ResponseBody
@RequestBody/@ResponseBodyをクリーンアップします.
サーバに必要なデータを要求するためにクライアントからサーバにJSONデータを送信すると、サーバは@Request Body操作を使用してHTTP要求本文の値をJavaオブジェクトに変換し、オブジェクトに格納します.
サーバからクライアントに応答データを転送するには、@ResponseBody宣言を使用してJavaオブジェクトをHTTP応答本文のオブジェクトに変換し、クライアントに送信します.
https://cheershennah.tistory.com/179
PathVariable
https://ocblog.tistory.com/46
package com.cos.chatapp;
import lombok.RequiredArgsConstructor;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers;
import java.time.LocalDateTime;
@RequiredArgsConstructor
@RestController // 데이터 리턴 서버
public class ChatController {
private final ChatRepository chatRepository;
@GetMapping(value = "/sender/{sender}/receiver/{receiver}", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Chat> getMsg(@PathVariable String sender, @PathVariable String receiver) {
return chatRepository.mFindBySender(sender, receiver)
.subscribeOn(Schedulers.boundedElastic());
}
@PostMapping(value = "/chat")
public Mono<Chat> setMsg(@RequestBody Chat chat) { // Mono는 데이터를 한번만 리턴한다. 계속할거면 Flux
chat.setCreatedAt(LocalDateTime.now());
return chatRepository.save(chat);
}
}
郵便配達人として郵便招待を出した.ブラウザ接続ビュー
@RequiredArgsConstructor
パーティションの説明
@NoArgConstructorパラメータのないデフォルトジェネレータの作成
Student std = new Student();
@RequiredArgConstructor finalまたは@NonNullの作成者のみを参照
Student std = new Student(1L);
@AllArgConstructorすべてのフィールド値をパラメータとするジェネレータを作成
student std=new student(1 L、「洪吉童」、20);
https://invicr.github.io/2020/03/31/Spring-NoArgsConstructor-RequiredArgsConstructor-AllArgsConstructor/
@RestController
コントローラクラスに@RestControllerを追加すると、コントローラクラスサブメソッドに@ResponseBody操作を追加することなく文字列やJSONなどを送信できます.
https://doctorson0309.tistory.com/664
ResponseBody
@RequestBody/@ResponseBodyをクリーンアップします.
サーバに必要なデータを要求するためにクライアントからサーバにJSONデータを送信すると、サーバは@Request Body操作を使用してHTTP要求本文の値をJavaオブジェクトに変換し、オブジェクトに格納します.
サーバからクライアントに応答データを転送するには、@ResponseBody宣言を使用してJavaオブジェクトをHTTP応答本文のオブジェクトに変換し、クライアントに送信します.
https://cheershennah.tistory.com/179
PathVariable
https://ocblog.tistory.com/46
Reference
この問題について(Spring Bootチャットサーバ-5強SSEプロトコルとTextEventStreamの作成), 我々は、より多くの情報をここで見つけました https://velog.io/@chss3339/SpringBootChat5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol