Playground
웹 비디오 플레이어와 소켓을 이용한 "라이브 댓글" 비디오 플레이어
플로우
by 장정윤
컴포넌트
- Video upload/streaming server
- Video metadata API server
- Proxy Server
- React with react-player
- Socket server
- MongoDB server
기술 스택
- Spring Boot
- NodeJS/Express
- MongoDB
- React
- SocketIO
- Nginx
명세
백엔드 DB 댓글 서버
서버 host : 49.50.173.151 (곧 폐쇄 예정)
port : 3000
Node + mongoDB 로 구성
동영상 스트리밍 서버
서버 host : 49.50.162.195 (곧 폐쇄 예정)
port : 8080
Spring Boot로 구성, FFmpeg으로 변환
API 명세
현재 프록시에 연결되어 있습니다.
프록시 주소 : 27.96.130.172/api/ (곧 폐쇄 예정)
api/ 뒤에 요청 url을 붙이시면 됩니다.
이 부분은 추후 RESTAPI 형식에 맞추기 위해 endpoint가 변경될 수 있음을 미리 공지합니다. (매 맞기전에🥺)
POST : /user/createUser
request body
{
cookie : id,
nickname : nickname
}
출력
- 200 - 성공시
{
"response": "success",
"message": "유저 성공에 성공했습니다.",
"data": "nickname"
}
- 200 - 실패시
{
"response": "error",
"message": "유저 생성에 실패했습니다.",
"data": "errorMessage"
}
GET : /user/getNickname
requestParam(Query)
cookie : id
Request Ex : /user/getNickname?cookie=id
출력
- 200 - 성공시
{
"response": "success",
"message": "성공적으로 nickname을 조회했습니다.",
"data": "nickname"
}
- 200- error 시
{
"response": "error",
"message": "성공적으로 nickname을 조회했습니다.",
"data": "nickname"
}
POST: /comment/comment
- RequestBody
{
"cookie": "uuid",
"video": "videoId",
"message": "댓글 내용 들어갈 자리입니다요오오",
"timeline": 12.32
}
출력
- 200 - 성공시
{
"response": "success",
"message": "성공적으로 댓글을 작성했습니다.",
"data": null
}
- 200 - 실패시
{
"response": "error",
"message": "댓글을 작성하는데 실패했습니다.",
"data": "error Message"
}
**GET: /comment/comments **
requestParam(Query)
video : videoId,
timeline : 12.32
offset : 30
Request Ex : /comment/comments?video={videoId}&timeline={시간(sec.ms)}&offset={시간}
출력
- 200 - 성공시
{
"response" : "success",
"message" : "성공적으로 메시지 리스트를 불러왔습니다.",
"data" : [
{
"nickname" : "닉네임명",
"timeline" : 12.23,
"message" : "저장된 메시지이",
"createdAt" : "yyyy-mm-dd"
},
...
]
}
- 200 - 실패시
{
"response": "error",
"message": "메시지 리스트를 불러오는데 실패했습니다",
"data": "error Message"
}
POST: /videos/upload
- RequestBody(multipart/form-data)
videoname: "비디오 이름",
desc: "비디오 설명",
poster: poster file,
file: video file
출력
- 200 - 성공시
{
"errorCode": 10,
"message": "업로드 성공"
}
- 200 - 실패시
{
"errorCode": 12,
"message": "업로드 실패"
}