티스토리 뷰
socket.id는 서버측에서만 사용 가능
클라이언트 = writer1, writer2, writer3 ...
관리자 = admin
라고 가정하고
admin 이 writer1 에게만 메세지 전송한다는 시나리오.
서버측
var io = require('socket.io').listen(8001); var clients = []; io.sockets.on('connection', function (socket) { socket.on('login', function(data) { var clientInfo = new Object(); clientInfo.uid = data.uid; clientInfo.id = socket.id; clients.push(clientInfo); }); socket.on('message special user', function(data) { // 클라이언트 소켓 아이디를 통해서 그 소켓을 가진 클라이언트에만 메세지를 전송 for (var i=0; i < clients.length; i++) { var client = clients[i]; console.log('client.uid = '+ client.uid); if (client.uid == data.uid) { io.sockets.socket(client.id).send(data.msg); break; } } }); socket.on('disconnect', function() { for (var i=0; i < clients.length; i++) { var client = clients[i]; if (client.id == socket.id) { clients.splice(i, 1); break; } } console.log('user disconnected'); }); });
유저 writer1
var socket = io.connect('http://xxx.com', { port:8001 }); socket.on('connect', function() { socket.emit('login', { uid: 'writer1' }); }); // 서버측에서 socket.send(msg); 한것을 받아 살행 socket.on('message', function (msg) { document.write(msg); });
관리자 admin
var socket = io.connect('http://xxx.com', { port:8001 }); socket.on('connect', function() { socket.emit('login', { uid: 'admin' }); }); socket.on('message', function (msg) { document.write(msg); }); // 글쓴이1에게만 메세지 전송. 브라우저 콘솔에서 원할때 찍는게 나을듯... socket.emit('message special user', { uid:'writer1', msg:'글쓴이1 에게만 보내는 메시지입니다.' });
'웹프로그래밍 > NodeJS' 카테고리의 다른 글
socket.io 전송 .on 데이터가 string 형식으로 되어버리는 문제(PrototypeJS 영향) 해결법 (0) | 2014.04.14 |
---|---|
node.js 프로그램 NSSM 이용하여 윈도우 서비스로 등록하여 실행 (0) | 2014.04.07 |
MAC OSX에서 npm 모듈 설치시 ERR 오류 마구 발생핼때 재설치법 (0) | 2014.02.05 |
Node.js 관련 한글 링크들 (0) | 2012.12.12 |
Cloud9 Node.js TypeError: Object 8080 has no method 'on' (0) | 2012.11.29 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- CSS
- nodejs
- Mac
- laravel
- iphone
- git
- ASP
- JQuery
- Wordpress
- PHP
- iis
- classic asp
- Linux
- 워드프레스
- JSON
- 한글
- mssql
- API
- IE
- IOS
- centos
- javascript
- sencha touch
- 안드로이드
- nginx
- Prototype
- Android
- Debug
- macos
- Docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함