1. 다른유저가 접속했는지 확인
앞의 소스들은 다른 소켓(클라이언트)이 접속을 했는지 않했는지 확인을 할 수 없었습니다.
이번 장에서는 socket.broadcast를 이용하여 접속 여부를 기능을 추가해보도록 하겠습니다.
2. 서버 소켓
index.js
const app = require('express')();
const http = require('http').createServer(app);
const io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
socket.broadcast.emit('chat message', 'user connection...');
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
socket.on('disconnect', function(){
socket.broadcast.emit('chat message', 'user disconnection...');
});
});
http.listen(3000, function () {
console.log('listening on*: 3000');
});
- 앞의 소스와 유사합니다. 단지 소켓 이벤트를 받는 부분에 집중해주세요
- 처음 접속했다면 socket.broadcast를 이용하여 자신을 제외한 다른 클라이언트들에게 접속 여부를 알립니다.
- socket.on('disconnect') : 해당 함수로 소켓 통신이 끝났는지 확인 할 수 있습니다. 이곳에다 위와같은 작업을 추가합니다.
3. 확인
node index.js
localhost:3000
서버를 가동하고 localhost:3000으로 접속해주세요. 그리고 이후에 창을 하나더 띄워주세요
다시 브라우저 하나를 닫아주세요.
위와같이 나왔다면 성공입니다 :)
다음은 접속 유저의 닉네임을 추가해보도록 하겠습니다.
'Front-End > socket.io' 카테고리의 다른 글
[socket.io] 7. socket.io를 이용한 채팅프로그램 - 타이핑중추가 (0) | 2019.11.28 |
---|---|
[socket.io] 6. socket.io를 이용한 채팅프로그램 - 닉네임추가 (0) | 2019.11.27 |
[socket.io] 4. socket.io를 이용한 채팅프로그램 - 이벤트처리 & 채팅완성 (0) | 2019.11.26 |
[socket.io] 3. socket.io를 이용한 채팅프로그램 - socket.io 연동 (0) | 2019.11.25 |
[socket.io] 2. socket.io를 이용한 채팅프로그램 - 프로젝트 설정 (0) | 2019.11.21 |