티스토리 뷰
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
- JQuery
- iphone
- git
- 한글
- iis
- laravel
- Android
- 워드프레스
- nodejs
- macos
- API
- PHP
- nginx
- Mac
- CSS
- Wordpress
- IOS
- mssql
- Docker
- Prototype
- classic asp
- ASP
- Linux
- sencha touch
- javascript
- JSON
- centos
- Debug
- 안드로이드
- IE
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함