-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
어떤 기능인가요?
채팅 모듈에서 RestAPI 대신 WebSocket을 통해 실시간으로 메시지를 주고받는 방식으로 변경했습니다.
기대 효과
- WebSocket은 지속적으로 연결된 상태에서 양방향 통신을 가능하게 하여 메시지 전달 속도를 향상시키고, 서버 리소스를 보다 효율적으로 사용할 수 있습니다.
작업 상세 내용
ChatType
MessageType을 만들어서 Response에 속성으로 넣어 채팅의 Type에 따라 프론트에서 처리할 수 있게 해서 트래픽 부하를 줄일 수 있을 것으로 기대합니다.
Update, Delete 등 상태 변경이 일어났을 때에 해당 채팅의 id로 프론트에서 찾아서 그 채팅만 변경하는것이 list를 아예 새로 읽어오는 것보다 트래픽 부하가 적고 속도가 빠를 것으로 예상했습니다.
package kpring.core.chat.model
enum class MessageType(val type: String) {
ENTER("ENTER"),
INVITATION("INVITATION"),
CHAT("CHAT"),
UPDATE("UPDATE"),
DELETE("DELETE"),
OUT("OUT"),
}
ENTER("ENTER") : 누군가가 채팅방에 입장했을 때 수신되는 ChatResponse
INVITATION("INVITATION") : 누군가가 채팅방에 초대링크를 공유했을 때 수신되는 ChatResponse
CHAT("CHAT") : 일반 채팅
UPDATE("UPDATE") : 이 Type의 ChatResponse가 수신되면 해당 채팅의 id로 프론트 페이지에서 찾아서 그 채팅만 변경할 수 있습니다.
DELETE("DELETE") : 이 Type의 ChatResponse가 수신되면 해당 채팅의 id로 프론트 페이지에서 찾아서 그 채팅만 삭제할 수 있습니다.
OUT("OUT") : 누군가가 채팅방을 나갔을 때 가는 ChatResponse
ChatResponse 에 sender와 messageType 추가
data class ChatResponse(
val id: String,
val sender: String,
val messageType: MessageType,
val isEdited: Boolean,
val sentAt: String,
val content: String,
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
In progress