티스토리 뷰
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
링크
- Make Use Of
- How to geek
- 인터넷 통계정보 검색시스템
- 트위터 공유 정보모음
- 웹표준KR
- 치우의 컴맹탈출구
- Dev. Cheat Sheets
- w3schools
- Dev. 조각들
- ASP Ajax Library
- CSS Tricks
- WebResourcesDepot
- jQuery Selectors Tester
- DeveloperSnippets
- Smashing Magazine
- Nettuts+
- devListing
- 웹 리소스 사이트(한)
- Mobile tuts+
- Dream In Code
- Developer Tutorials
- CSS3 Previews
- 자북
- 안드로이드 사이드
- Code Visually
- Code School
- SQLer.com
- 무료 파워포인트 템플릿
- iconPot
- Free PowerPoint Templates
- Design Bombs
- Web Designer Wall
- 1st Webdesigner
- Vandelay Design
- 무료 벡터 이미지 사이트들
- Tripwire Magazine
- Web TrendSet
- WebMonkey
- 윤춘근 프리젠테이션 디자이너 블로그
- cz.cc 무료 DNS
- [웹하드] MediaFire
- [웹하드] DivShare
- 한컴 인터넷 오피스
TAG
- Wordpress
- Chrome
- Prototype
- 한글
- mssql
- 안드로이드
- centos
- JSON
- IE
- Linux
- javascript
- CSS
- IOS
- 워드프레스
- Docker
- API
- JQuery
- ASP
- git
- nodejs
- classic asp
- iis
- Debug
- Mac
- nginx
- sencha touch
- laravel
- iphone
- Android
- PHP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함