실시간 채팅방 만들기 (NodeJS, Express, Redis, Socket.io) - 설치하기
카테고리 없음2018. 4. 2. 01:04
국내 무료 실시간 채팅방 서비스로는 '문챗', '유챗', '우하하챗', '가가라이브', '미니톡' 등이 존재합니다.
스킨과 기능적인 면에서 다양한 커스터마이징을 지원해 간단하게 사용한다면 더할 나위 없이 좋은 서비스들이지만
일반화 되어 있는 스킨과 기능들로 인해 내 입맛에 맞는 채팅방을 구현하는데에는 무리가 있었습니다.
그래서, 직접 내 입맛에 맞는 실시간 채팅방을 만들어보면 어떨까 싶어 NodeJS 기반으로 제작해보기로 하였습니다.
1. 채팅방 구현에 필요한 요소 정리
- 접속자 정보
- 고유 아이디
- 닉네임
- 레벨
- 권한(일반/부관리자/관리자)
- 접속 시간
- 아이피 주소
- 차단 여부
- 채팅 제한
- 아이피
- 단어
- 채팅 기능
- 특정 단어/유저 무시하기
- 호출하기
- 이미지 업로드
- 이모티콘
- 귓속말
- 글자 스타일
- 링크
- 공지사항
- 채팅 내역 남기기
2. 채팅 서버 구성도
- NodeJS
- Express
- Redis
- Socket
- MySQL
NodeJS <-> Socket
: 서버와 클라이언트 간의 소켓 통신
Express
: 웹 서버 프레임워크 용도
Mysql <-> Redis <-> NodeJS
: 실시간 채팅 내역은 Redis에 저장, 일정 주기별로 DB로 저장
3. 설치
yum으로 nodejs 안정 버전 설치하기
yum install epel-release
curl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -
yum install nodejs gcc-c++ make
package.json
{
"name": "app",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"JSON": "^1.0.0",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"ejs": "~2.5.7",
"express": "~4.16.0",
"http-errors": "~1.6.2",
"morgan": "~1.9.0",
"redis": "^2.8.0",
"socket.io": "^2.0.3",
"underscore": "^1.8.3"
}
}
노드 모듈 설치
npm install