Skip to content

API Specification

hyelie edited this page Oct 26, 2022 · 52 revisions

template


code.seholee.com:8082/example

Operational Summary

Operational description

Parameters

Path
name type description required
id type parameter description(optional) Optional or Required
Headers
name type description required
id type parameter description(optional) Optional or Required
Cookies
name type description required
id type parameter description(optional) Optional or Required
Body
name type description required
id type parameter description(optional) Optional or Required

Response

200 OK : description
{
    // Response
}
201 Created: description
{
    // Response
}

auth

로그인


code.seholee.com:8082/auth/login

detail

Parameters

Body
name type description required
uid string 로그인 할 사용자의 아이디 Required
password string 로그인 할 사용자의 비밀번호 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : {
        "expiresIn": 3600,
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTEsIm5hbWUiOiLsnbTshLjtmLjrobHsnbQiLCJzZXJ2aWNlTnVtYmVyIjoiMjItNzYwMDEwMTEiLCJpYXQiOjE2NjQ5NTUxNDgsImV4cCI6MTY2NDk1ODc0OH0.Ay5K2VE7Fu2okskO-9UCBatZcrZjS3f1FFBFgQwpXGY"
    },
    "message" : "login"
}
이외의 에러코드 작성 바람

로그아웃


code.seholee.com:8082/auth/logout

detail

Response

200 Ok : 성공적으로 로그아웃된 경우
{
    "data" : {
        logOutUserData
    },
    "message" : "logout"
}
이외의 에러코드 작성 바람

messages

읽지 않은 메시지 조회


code.seholee.com:8082/message/{id}

detail

Parameters

Path
name type description required
id integer 채팅방 아이디 Required

Response

200 Ok : 성공적으로 조회된 경우
{
    "data" : [
        {
          _id:  Int,	
  		text:  String,
  		sendTime:  DATE_TIME,
  		deleteTime:  DATE_TIME,
  		senderId:  Int,
  		belongChatroomId: Int,},
...
    ],
    "message" : "get unread messages"
}

최근 읽은 메시지 갱신


code.seholee.com:8082/message/setRecentRead

detail

Parameters

Body
name type description required
chatroomId integer 채팅방 아이디 Required
recentMessageId integer 최근 메시지 아이디 Required

Response

200 Ok : 성공적으로 조회된 경우
{
    "message" : "success"
}

읽지 않은 사용자 조회


code.seholee.com:8082/message/unread

detail

Parameters

Body
name type description required
chatroomId integer 채팅방 아이디 Required
recentMessageId integer 최근 메시지 아이디 Required

Response

200 Ok : 성공적으로 조회된 경우
{
    "data" : [
        <User>,...
    ],
    "message" : "get unread peoples"
}

읽은 사용자 조회


code.seholee.com:8082/read

detail

Parameters

Path
name type description required
chatroomId integer 채팅방 아이디 Required
recentMessageId integer 최근 메시지 아이디 Required

Response

200 Ok : 성공적으로 조회된 경우
{
    "data" : [
        <User>,...
    ],
    "message" : "get read peoples"
}

users

사용자 생성


code.seholee.com:8082/users

detail

사용자 생성 api

Parameters

Body
name type description required
uid String 아이디 Required
password String 패스워드 Required
name String 성명 Required
serviceNumber String 군번 Required
enlistmentDate String 입대일 Required
affiliatedUnit String 전역일 Required
militaryRank String 계급 Required
image String 프로필 이미지 URL Not Required

Response

201 Created : 성공적으로 친구 추가 된 경우
{
    "message" : "created"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "{JSON FEILD} is empty"
}
//ValidationError
409 Conflict: 이미 데이터가 존재할 경우
  • 친구 id가 존재하지 않는 경우
{
    "message" : "This uid ${userData.uid} already exists"
}

사용자 검색


code.seholee.com:8082/users/friends

detail

Parameters

Body
name type description required
name String 성명 Required
serviceNumber String 군번 Required

Response

200 OK : 성공적으로 친구 추가 된 경우
{
    "data": <UserData>
    "message" : "findOne"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "{JSON FEILD} is empty"
}
//ValidationError

사용자 조회 by Id


code.seholee.com:8082/users/{id}

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
id integer 조회할 사용자의 id Required

Response

200 Ok : 성공적으로 사용자를 조회한 경우
{
    "data" : {
            {
                userId: number,
                uid: string,
                name: string,
                serviceNumber: string,
                affiliatedUnit: string | null,
                militaryRank: string | null,
                image: string | null,
                enlistmentDate: Date | null
            }
    },
    "message" : "findOne"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

내 정보 조회


code.seholee.com:8082/users/me

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Response

200 Ok : 성공적으로 친구를 조회한 경우 ``` { "data" : { { userId: number, uid: string, name: string, serviceNumber: string, affiliatedUnit: string | null, militaryRank: string | null, image: string | null, enlistmentDate: Date | null } }, "message" : "findOne" } ```
400 Bad Request: 사용자 정보가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

사용자 정보 수정


code.seholee.com:8082/users/updateUserInfo

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
userId String 사용자 식별자 Required
uid String 아이디 Not Required
password String 패스워드 Not Required
name String 성명 Not Required
serviceNumber String 군번 Not Required
enlistmentDate String 입대일 Not Required
affiliatedUnit String 전역일 Not Required
militaryRank String 계급 Not Required
image String 프로필 이미지 URL Not Required

Response

200 Ok : 성공적으로 업데이트한 경우 ``` { "message" : "updated" } ```
400 Bad Request: 사용자 정보가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

사용자 비밀번호 수정


code.seholee.com:8082/users/updateUserPw

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
currentPassword String 현재 비밀번호 Required
password String 수정된 비밀번호 Required

Response

200 Ok : 성공적으로 업데이트한 경우 ``` { "message" : "updated" } ```
400 Bad Request: 사용자 정보가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

사용자 삭제


code.seholee.com:8082/users/{id}

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
id integer 삭제할 사용자의 id Required

Response

200 Ok : 성공적으로 친구를 삭제한 경우
{
    "data" : {
        "count": 1
    },
    "message" : "deleted"
}
400 Bad Request: 요청에서 id가 없는 경우
{
    "message" : "userID is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
  • 사용자 id가 존재하지 않는 경우
{
    "message" : "User doesn't existId"
}

퍼블릭 키 업데이트


code.seholee.com:8082/users/publicKey

detail

Parameters

Body
name type description required
publicKey String 퍼블릭키 Required

Response

200 OK : 성공적으로 퍼블릭키 추가 된 경우
{
    "message" : "updated"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "{JSON FEILD} is empty"
}
//ValidationError
409 Conflict: 사용자가 존재하지 않는 경우
  • 사용자 id가 존재하지 않는 경우
{
    "message" : "User doesn't existId"
}

퍼블릭키 조회


code.seholee.com:8082/publicKey

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
id integer 조회할 사용자의 id Required

Response

200 Ok : 성공적으로 퍼블릭키를 조회한 경우
{
    "data" : {
            "key":<publicKey>
    },
    "message" : "updated"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
  • 사용자 id가 존재하지 않는 경우
{
    "message" : "User doesn't existId"
}

friends

친구 추가


code.seholee.com:8082/friends

detail

현 사용자의 친구를 추가하는 기능

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
followingId integer 친구 추가 할 사용자의 userId Required

Response

201 Created : 성공적으로 친구 추가 된 경우
{
    "data" : {
        "followerId": "number",
        "followingId": "number"
    },
    "message" : "created"
}
400 Bad Request: followingId가 없는 경우
{
    "message" : "friendData is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 친구 id가 존재하지 않거나, 이미 친구 관계인 경우
  • 친구 id가 존재하지 않는 경우
{
    "message" : "This follower id ${friendData.followerId} not exists"
}
  • 이미 친구관계인 경우
{
    "message" : "This friend follwer-${friendData.followerId} and followind-${friendData.followerId} already exists"
}

친구 조회


code.seholee.com:8082/friends

detail

현 사용자의 친구를 조회하는 기능

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Response

200 Ok : 성공적으로 친구를 조회한 경우
{
    "data" : {
        [
            {
                userId: number,
                uid: string,
                name: string,
                serviceNumber: string,
                affiliatedUnit: string | null,
                militaryRank: string | null,
                image: string | null,
                enlistmentDate: Date | null
            },
            ...
        ]
    },
    "message" : "findFriends by userid ${userId}"
}
400 Bad Request: 사용자 정보가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

친구 삭제


code.seholee.com:8082/friends

detail

현 사용자의 친구를 삭제하는 기능

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
followingId integer 친구 추가 할 사용자의 userId Required

Response

200 Ok : 성공적으로 친구를 삭제한 경우
{
    "data" : {
        "count": 1
    },
    "message" : "deleted"
}
400 Bad Request: 요청에서 followingId가 없는 경우
{
    "message" : "friendData is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우 ``` { "message" : "Authentication token missing" } ```
409 Conflict: 사용자가 존재하지 않는 경우 - 친구가 존재하지 않는 경우 ``` { "message" : "Friends doesn't exist" } - 사용자 id가 존재하지 않는 경우 ``` { "message" : "User doesn't existId" } ```

allclear (이상무)

allclear 생성


code.seholee.com:8082/allclear/create

detail

parameter로 받은 메시지를 [이상무 보고allclear]로 만들어줌.

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
messageId integer allclear로 만들 message id Required

Response

201 Created: message를 allclear로 만드는 데 성공한 경우
{
  "message": "success"
}
409 Conflict: 이미 allclear가 만들어진 message를 또 allclear로 만들려고 시도하는 경우
{
  "message": "All clear already exist."
}

allclear 응답 전체 조회


code.seholee.com:8082/allclear/response/all/{messageId}

detail

path parameter로 받은 메시지 id에 해당하는 allclear 응답 전체를 사용자와 함께 리턴함.

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
messageId integer allclear를 조회할 message id Required

Response

200 Ok: message id에 해당하는 allclear를 조회하는 데 성공한 경우
{
  "data": [
    {
      "allClearResponseId": 1,
      "type": "PROBLEM",
      "content": "cleartest",
      "allClearId": 1,
      "userId": 5,
      "user": {
        "userId": 5,
        "uid": "tester1",
        "name": "1번로그인예제1",
        "serviceNumber": "11111111",
        "affiliatedUnit": null,
        "militaryRank": null,
        "image": null,
        "enlistmentDate": null
      }
    },
    {
      "allClearResponseId": 2,
      "type": "PROBLEM",
      "content": "cleartest",
      "allClearId": 1,
      "userId": 6,
      "user": {
        "userId": 6,
        "uid": "tester2",
        "name": "2번로그인예제2",
        "serviceNumber": "22222222",
        "affiliatedUnit": null,
        "militaryRank": null,
        "image": null,
        "enlistmentDate": null
      }
    }
  ],
  "message": "get whole all clear reponses"
}
403 Forbidden: allclear 개설자가 아닌데 해당 API에 접근한 경우
{
  "message": "You are not permitted to access this resource"
}
404 Not Found: path parameter로 받은 message id가 allclear가 아닌 경우
{
  "message": "All clear does not exist."
}

작성한 allclear 응답 조회


code.seholee.com:8082/allclear/response/{messageId}

detail

user가 path parameter로 받은 메시지 id에 해당하는 allclear에 작성한 내용을 리턴함.

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
messageId integer allclear를 조회할 message id Required

Response

200 Ok: user가 작성한 message id에 해당하는 allclear를 조회하는 데 성공한 경우
{
  "data": {
    "allClearResponseId": 1,
    "type": "PROBLEM",
    "content": "cleartest",
    "allClearId": 1,
    "userId": 5
  },
  "message": "get all clear reponse"
}
404 Not Found: path parameter로 받은 message id가 allclear가 아닌 경우
{
  "message": "All clear does not exist."
}

allclear 응답 작성


code.seholee.com:8082/allclear/response/create

detail

parameter로 받은 message id의 allclear에 내용을 작성함.

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
messageId integer [작성할 allclear에 해당하는 message id Required
allClearResponseType enum('PROBLEM', 'CLEAR') 응답 종류 Required
content string 응답 내용 Required

Response

200 Ok: user가 작성한 message id에 해당하는 allclear를 조회하는 데 성공한 경우
{
  "message": "success"
}
404 Not Found: parameter로 받은 message id가 allclear가 아닌 경우
{
  "message": "All clear does not exist."
}

chatroom

소속 채팅방 정보 목록 조회


code.seholee.com:8082/chatroom/my

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : <chatRoomData>,
    "message" : "found all matching chatrooms"
}
이외의 에러코드 작성 바람

소속 채팅방 정보 목록 및 읽지 않은 메시지 개수 조회


code.seholee.com:8082/chatroom/myUnreads

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : {<ChatroomAndNumOfUnreadMessages>...},
    "message" : "found all matching chatrooms and unread messages number"
}
이외의 에러코드 작성 바람

채팅방 정보 조회 by id


code.seholee.com:8082/chatroom/{id}

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
id integer 채팅방 아이디 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : {
        <chatroomWithKey>},
    "message" : "found the matching chatroom"
}
이외의 에러코드 작성 바람

채팅방 참여자 조회 by id


code.seholee.com:8082/chatroom/getAllUsersInfo/{id}

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
id integer 채팅방 아이디 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : {
      <User>... },
    "message" : "success"
}
이외의 에러코드 작성 바람

채팅방 사용자 추가


code.seholee.com:8082/chatroom/invite

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
chatroomId int 채팅방 아이디 Required
targetUserIds int 초대할 사용자 아이디 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "message" : "success"
}
이외의 에러코드 작성 바람

모든 친구 리스트 조회


code.seholee.com:8082/chatroom/getAllFriends

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : {
       <User>...},
    "message" : "found all friends for the user"
}
이외의 에러코드 작성 바람

채팅방 생성


code.seholee.com:8082/chatroom/create

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
name string 채팅방 이름 Required
targetUserIds number[] 초대할 사용자 리스트 Required
msgExpTime number 메시지 보관 기간 Required
commanderUserIds number[] 상급자 사용자 아이디 Required
removeAfterRead boolean 읽은 후 삭제 설정 Required
removeType ChatRemoveType 삭제 설정 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : {
        <chatroomInfo>},
    "message" : "success"
}
이외의 에러코드 작성 바람

채팅방 정보 수정


code.seholee.com:8082/chatroom/modify

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
name string 채팅방 이름 Required
targetUserIds number[] 초대할 사용자 리스트 Required
msgExpTime number 메시지 보관 기간 Required
removeAfterRead boolean 읽은 후 삭제 설정 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "message" : "success"
}
이외의 에러코드 작성 바람

암호화 된 채팅방 키 저장


code.seholee.com:8082/chatroom/chatroomKey

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Body
name type description required
forChatroomId string 채팅방 아이디 Required
forUserId string 사용자 아이디 Required
encryptedKey string 암호화 키 Required

Response

200 Ok : 성공적으로 요청된 경우
{
    "message" : "success"
}
이외의 에러코드 작성 바람

채팅방 키 조회


code.seholee.com:8082/chatroom/getChatroomKey/{id}

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
id string 채팅방 아이디 Required

Response

200 Ok : 성공적으로 요청된 경우
{
    "data" : {
        "encryptedKey": <encryptedKey>,
      },
    "message" : "success"
}
이외의 에러코드 작성 바람

최상급자 ID 조회


code.seholee.com:8082/chatroom/{id}

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
id string 채팅방 아이디 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : {
    "userId":<userId>    
},
    "message" : "success"
}
이외의 에러코드 작성 바람

채팅방 삭제


code.seholee.com:8082/chatroom/{id}

detail

Parameters

Headers
name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required
Path
name type description required
id string 채팅방 아이디 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "message" : "success"
}
이외의 에러코드 작성 바람

socket event

token 문제로 연결되지 않는 경우 connect_error를 전송.

  • invalid token인 경우 Wrong authentication token
  • token이 없는 경우 Authentication token missing

socket event는 [발송자]:[이벤트 명] 형식으로 만듭니다.

Client-side

소켓 초기 연결

detail

소켓 초기 연결. auth에 넣는 [사용자 토큰]으로 사용자를 식별함.

Connect Option

namespace path transports reconnectionAttempts auth
/chat /socket.io ['websocket'] 2 {token: [사용자 토큰]}
example
io(env.prod.apiBaseUrl + '/chat', {
  path: '/socket.io',
  transports: ['websocket'],
  reconnectionAttempts: 2,
  auth: { token: userToken },
});

속해있는 모든 채팅방 소켓 room들에 접속 요청


client:joinAllChatrooms

detail

해당 사용자가 속해있는 모든 room에 접속 요청을 보냄.

Message Object

name type description required
chatroomIds integer[] 사용자가 속해있는 room id 리스트 Required
example
socket.emit("client:joinAllChatrooms", [1, 2]);

채팅방 소켓 room에 접속 요청


client:joinChatroom

detail

해당 사용자가 접속하고자 하는 room에 접속 요청을 보냄.

Message Object

name type description required
chatroomId integer 접속하고자 하는 room id Required
example
socket.emit("client:joinChatroom", 1);

채팅 전송 요청


client:joinChatroom

detail

해당 사용자가 접속하고자 하는 room에 접속 요청을 보냄.

Message Object

name type description required
message IMessageSendDto 보내고자 하는 메시지 Object Required
example
const message: IMessageSendDto = {
  text: [메시지 내용],
  belongChatroomId: [채팅방 ID],
  deleteTime: [삭제 시간],
  sendTime: [보내는 시간],
  hasQuickReplies: [AllClear 여부],
};

socket.emit('client:speakMessage', message);

채팅 수신


server:hearMessage

detail

해당 사용자에게 메시지가 발송되었을 때, 실시간으로 메시지를 띄워 줌.

Message Object

name type description required
messageDto IMessageDto 수신받은 메시지 Object Required
example
socket.on('server:hearMessage', (messageDto: IMessageDto) => {
  console.log("메시지를 수신했습니다.");
  ...
}

채팅 알림


server:notificateMessage

detail

해당 사용자에게 메시지가 발송되었을 때, 메시지가 왔다는 알림을 띄워 줌.

Message Object

name type description required
content string 수신받은 메시지 내용 Required
example
socket.on('server:notificateMessage', (content: string) => {
  console.log("메시지 수신, 내용: " + content);
  ...
});

Server-side

채팅방 전체 접속 요청 처리


client:joinAllChatrooms

detail

사용자가 요청한 속한 채팅방 전체 접속 요청을 처리함.

Message Object

name type description required
chatroomIds integer[] 사용자가 접속하고자 하는 room id 리스트 Required
example
socket.on("client:joinAllChatrooms", (chatroomIds: number[]) =>{
  console.log("client의 socket room 전체 접속 요청: " + chatroomIds);
  ...
});

채팅방 접속 요청 처리


client:joinChatroom

detail

사용자가 요청한 채팅방 접속 요청을 처리함.

Message Object

name type description required
chatroomId integer 사용자가 접속하고자 하는 room id Required
example
socket.on("client:joinChatroom", (chatroomId: number) =>{
  console.log("client의 socket room 접속 요청: " + chatroomId);
  ...
});

채팅 전송 요청 처리


client:speakMessage

detail

사용자가 요청한 메시지 전송 요청을 처리함.

Message Object

name type description required
message IMessageDto 보내고자 하는 메시지 Object Required
example
socket.on("client:speakMessage", (iMessageDto: IMessageDto) =>{
  console.log("client가 메시지 전송: " + iMessageDto);
  ...
});

해당 채팅방에 메시지 전송


server:hearMessage

detail

사용자가 채팅 전송 요청을 했을 때 해당 room에 메시지를 전송함.

Message Object

name type description required
iMessageDto IMessageDto 전송할 메시지 Object Required
example
// 해당 room에 속해있는 모든 client에게 뿌립니다.
const iMessageDto: IMessageDto = {
  _id: [메시지 ID],
  text: [메시지 내용],
  senderId: [보낸 사람],
  belongChatroomId: [채팅방 ID],
  deleteTime: [삭제 시간],
  sendTime: [보내는 시간],
  hasQuickReplies: [AllClear 여부],
};
io.in([채팅방 ID]).emit("server:hearMessage", iMessageDto);

채팅 알림 전송


server:notificateMessage

detail

사용자가 채팅 전송 요청을 했을 때 해당 room에 속한 사용자들에게 메시지가 왔다는 알림을 전송함.

Message Object

name type description required
content string 수신받은 메시지 내용 Required
example
let content = "메시지 알림";
io.in([채팅방 ID]).emit("server:notificateMessage", content);