항목 | 설명 |
---|---|
연결 URL | / |
필수 쿼리 파라미터 | sessionId : 세션 ID |
token : 사용자 토큰 |
|
연결 예시 | const socket = io('ws://localhost:3000', { |
query: { |
sessionId: '2003544c-d901-4455-818d-d54af3784afa',
token: 'df7c4881-1047-4bc5-aa98-5b37add3cc65'
} }); |
이벤트명 | 설명 | 데이터 형식 | 데이터 예시 | |
---|---|---|---|---|
duplicatedConnection |
connection에 | |||
실패한 경우 | 없음 | 없음 (이벤트만 갑니다) |
이벤트명 | 설명 | 데이터 형식 | 데이터 예시 | 예시 |
---|---|---|---|---|
createChat |
채팅 메시지 전송 | string |
'황정민' |
socket.emit('createChat', '황정민') |
이벤트명 | 설명 | 데이터 형식 | 데이터 예시 |
---|---|---|---|
chatMessage |
채팅 메시지 수신 |
all 브로드 캐스팅
전송자 포함 | {
content: string,
nickname: string,
chattingId: number,
abuse: boolean
} | {
content: "황정민",
nickname: "대정민",
chattingId: 40,
abuse: false
} |
| chatError
| 채팅 메시지 실패 시
채팅 작성자에게만 보내드리는 응답입니다. | { message: string, error: string } | { message: '채팅 생성에 실패했습니다', error: ‘에러메시지’ } |
이벤트명 | 설명 | 실행된 api | 예시 | 비고 |
---|---|---|---|---|
questionCreated |
새 질문 등록됨 | POST | ||
/api/questions | { |
"question": {
"questionId": 68,
"createUserToken": "6a76804d-28bd-48f2-9c56-780633e3e25b",
"sessionId": "2003544c-d901-4455-818d-d54af3784afa",
"body": "## 대정민님!",
"closed": false,
"pinned": false,
"createdAt": "2024-11-20T11:03:38.032Z",
"isOwner": false,
"likesCount": 0,
"liked": false,
"nickname": "익명",
"replies": []
}
} | 작성자 제외하고 해당 세션 모두에게 전송 |
| questionUpdated
| 질문 수정됨 | PATCH
/api/questions/{questionId}/body
PATCH /api/questions/{questionId}/pinned
PATCH
/api/questions/{questionId}/closed | {
"question": {
"questionId": 68,
"createUserToken": "6a76804d-28bd-48f2-9c56-780633e3e25b",
"sessionId": "2003544c-d901-4455-818d-d54af3784afa",
"body": "대영재님 수정갑니다!",
"closed": false,
"pinned": false,
"createdAt": "2024-11-20T11:03:38.032Z"
}
} | 작성자 제외하고 해당 세션 모두에게 전송 |
| questionDeleted
| 질문 삭제됨 | DELETE
/api/questions/{questionId} | {
"questionId": 68
} | 작성자 제외하고 해당 세션 모두에게 전송 |
| questionLiked
| 질문 좋아요 변경 | POST
/api/questions/{questionId}/likes | {
"questionId": 68,
"liked": false,
"likesCount": 1
} | 작성자 제외하고 해당 세션 모두에게 전송 |
이벤트명 | 설명 | 실행된 api | 예시 | 비고 |
---|---|---|---|---|
replyCreated |
새 답변 등록됨 | POST | ||
/api/replies | { |
"reply": {
"replyId": 58,
"body": "다 대상현님 덕분이죠.",
"createdAt": "2024-11-20T11:19:20.044Z",
"isOwner": false,
"likesCount": 0,
"liked": false,
"deleted": false,
"nickname": "익명",
"isHost": false,
"questionId": 69,
},
} | 작성자 제외하고 해당 세션 모두에게 전송 |
| replyUpdated
| 답변 수정됨 | PATCH
/api/replies/{replyId}/body | {
"reply": {
"replyId": 58,
"createUserToken": "6a76804d-28bd-48f2-9c56-780633e3e25b",
"sessionId": "2003544c-d901-4455-818d-d54af3784afa",
"questionId": 69,
"body": "수정합니다!",
"createdAt": "2024-11-20T11:19:20.044Z",
"deleted": false
}
} | 작성자 제외하고 해당 세션 모두에게 전송 |
| replyDeleted
| 답변 삭제됨 | DELETE
/api/replies/{replyId} | {
"replyId": 58,
"questionId": 69,
} | 작성자 제외하고 해당 세션 모두에게 전송 |
| replyLiked
| 답변 좋아요 변경 | POST
/api/replies/{replyId}/likes | {
“replyId”: 58
"liked": true,x
"likesCount": 1,
"questionId": 69,
} | 작성자 제외하고 해당 세션 모두에게 전송 |
이벤트명 | 설명 | 예시 | 비고 |
---|---|---|---|
participantCountUpdated |
세션에 참가중인 사람 수 변동 | { |
“participantCount” : 15
} | session 내에 누군가가 나가거나 들어왔다면 이벤트를 발생 |
이벤트명 | 설명 | 실행된 api | 예시 | 비고 |
---|---|---|---|---|
hostChanged |
호스트 권한 부여/해제 시 | PATCH | ||
/api/sessions-auth/host/{userId} | { |
“user”: {
“userId”: 31,
“nickname”: “minsuhan”,
“isHost” : true,
} } | |