Socket.io 란?
기존 웹 소켓은 HTML5 기술이라서 오래된 버전의 웹 브라우저는 웹 소켓을 지원하지 않는다.
Socket.io는 node.js 기반으로 만들어진 기술로, 거의 모든 웹 브라우저와 모바일 장치를 지원하는 실시간 웹 애플리케이션 지원 라이브러리이다.
100% 자바스크립트로 구현되어 있으며, 현존하는 대부분의 실시간 웹 기술들을 추상화했다.
다시 말해, Socket.io는 자바스크립트를 이용하여 브라우저 종류에 상관없이 실시간 웹을 구현할 수 있도록 한 기술이다.
Socket.io 시작하기 [ Server ]



Socket.io 시작하기 [ Client ]


풀링 방식과 웹 소켓 방식 둘 다 찍히는 모습을 확인할 수 있다.

간단한 실시간 채팅 만들기 [ Server ]



chat 메서드에 보면 broadcast.emit과 emit을 쓴 것을 볼 수 있는데 그냥 emit을 하면 내가 보낸 Message가 안보이기 때문에 broadcast로 전체 사용자에게 보내준다.
간단한 실시간 채팅 만들기 [ Client ]

동작 과정

1. 메인 페이지에 접속하면 아이디와 비밀번호를 입력하게 하고, 아이디가 없다면 회원 가입 페이지로 이동시켜 DB에 저장
2. 접속이 완료되면 Chat Example 페이지로 넘어가 DB에서 값을 가져와 화면에 보여주고, socket.name에 해당 아이디 값 저장

3. 최초 접속시 chatLogs에 접속한 이름을 보여준다.
4. 채팅을 치면 소켓을 통해 서버로 해당 메시지가 전달되고, 다시 서버에서 클라이언트로 메시지 값 전달해 chatLogs에 표현해준다.
5. 다른 사용자가 접속 시 아이디 chatLog에 접속한 것 보여주고, 메시지 전송 또한 위와 같이 이루어진다.
github 주소 : https://github.com/jiwonman/Socket
GitHub - jiwonman/Socket
Contribute to jiwonman/Socket development by creating an account on GitHub.
github.com
'BackEnd > Nodejs' 카테고리의 다른 글
| [node.js] NODEJS-FCM 알림 (0) | 2022.08.04 |
|---|---|
| 웹 통신 방식의 변화 (0) | 2022.08.04 |
| Node.js 시작하기 (0) | 2022.05.16 |