-
Socket.io를 이용한 채팅 서버 구축Today I Learned 2019. 12. 24. 22:05
socket.io
JavaScript를 이용하여 브라우저 종류에 상관없이 실시간 웹을 구현할 수 있도록 한 기술이며 표준 기술이 아니고 Node.js 모듈이다.
그림과 같이, 실시간 분석이나 채팅과 같은 기능들에 사용된다.
socket.io's functions
socket.on(eventName, callback) : 어떤 이벤트가 동작하면 callback 함수를 동작한다.
socket.leave(room[, callback]) : 어떤 방을 떠나고, callback 함수를 동작한다.
socket.to(room).emit(eventName[, …args][, ack]) : 어떤 room에 event를 socket으로 방출하는 함수이다. 다른 파라미터들도 포함될 수 있다.
socket.of('/namespace') : socket을 '/namespace'로 지정하는 함수이다.
namespace와 room
namespace와 room은 소켓 통신 공간을 구별하기 위해 사용한다. 서버 측에서는 of function 을 호출함으로써 custom namespace를 설정할 수 있다. room은 namespace에서 나눠진 socket들을 또 나눌 수 있다. socket.leave(), socket.join()으로 사용한다.
구현 방법
1npm install socket.ionpm을 이용해서 설치할 수 있다. 소스 코드는 다음과 같다.
위의 코드는 실제 로직을 구현할 index.js 이다.
Future work
namespace와 room을 ID처럼 사용해 1 on 1 채팅 구현은 성공했지만, 실제 제공하고 있는 채팅 서비스처럼 DB에 연동해서 실시간으로 채팅을 처리할 필요성이 있다.
출처
https://medium.com/wasd
'Today I Learned' 카테고리의 다른 글
moment (0) 2019.12.29 kill port (0) 2019.12.29 MYSQL JOIN문 (0) 2019.12.27 .gitignore 재설정 (0) 2019.12.26 Node.js를 이용한 회원가입 기능 구현 (0) 2019.12.25