Skip to content

[Chat] WebSocket 연결하기 #178

Description

@minisundev

어떤 기능인가요?

채팅 모듈에서 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,

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Chat채팅 관련 기능enhancement추가 기능

Type

No type

Projects

  • Status
    In progress

Relationships

None yet

Development

No branches or pull requests

Issue actions