Socket.IO 통합하기
Socket.IO는 두 가지로 구성되어 있다.
- Node.js HTTP Server를 통합하는 서버
socket.io
- 브라우저 측에서 로드하는 클라이언트 라이브러리
socket.io-client
socket.io
는 client를 자동적으로 제공해준다.
socket.io import 하기
const io = require('socket.io')(http);
socket.io에 http server를 넘겨줌으로써 io 인스턴스를 생성했다. 이 io 인스턴스로 socket.io와 관련된 이벤트 처리를 할 수 있다.
사용자 접속 이벤트 처리하기
io.on('connection', (socket) => {
console.log('user connected.');
});
사용자가 해당 사이트로 접속하면(connection
event가 발생하면) 콘솔에 "user connected." 메시지를 출력하도록 작성했다.
브라우저 측에서 socket.io-client 로드하기
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
</script>
index.html
파일에 <body>
부분에 저 코드를 추가하기만 하면 socket.io-client
를 로드하는 과정은 끝난다.
io()
에 URL을 주지 않았는데, 이렇게 하면 자동으로 호스트가 제공하고 있는 페이지에 접속하게 된다.
사용자 접속 해제 이벤트 처리하기
io.on('connection', (socket) => {
console.log('user connected.');
socket.on('disconnect', () => {
console.log('user disconnected.');
});
});
다음과 같이, 인자로 받은 socket 객체의 on 메서드를 호출하여 disconnect
이벤트를 처리할 수 있다.
실행 결과
페이지에 처음 접속하면 connect 이벤트가 발생한다. 이후 새로 고침을 하면 disconnect 이벤트가 발생한다. 다만, 처리되는데 시간이 조금 걸리기 때문에 즉각 콘솔에 메시지가 출력되지는 않는다.
Author And Source
이 문제에 관하여(Socket.IO 통합하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shin0805/Socket.IO-통합하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)