에러(Error)
TypeError: Object #<Socket> has no method 'set'
socket.io 1.0버전 부터 set과 get을 없애버렸다..... 응 뭐라고??
이번 버전 업그래이드로 좋지 않은 곳을 없애 버렸습니다.
아니 의사양반 이게 무슨 소리요...내가 ... 내가 고자라니 내가 넣고 빼고를 못한다니 ㅜㅜ
아아아아라알아라아악 이런 미친 무슨 소스코드를 밥먹듯이 바꿔 버전업한다면서 2013년도 책이 헌책방가도 안사주게 생겼sp......
무슨 니가 python3냐 아오 빡쳐
이유가 저장공간을 안에다 두지 않겠다나 뭐라나....결론 없어졌다.....
해결책
: 만들자..... 아래의 함수를 복사붙여넣기 하고 사용하자 !
function Sockets(){
this.sockets={};
};
Sockets.prototype.set = function(id, data) {
this.sockets[id] = data;
};
Sockets.prototype.get = function(id, callback) {
if (this.sockets[id] !== undefined) {
callback(true,this.sockets[id]);
} else {
callback(false,this.sockets[id]);
}
};
사용방법
모던웹을 위한 node.js라는 책에 나오는 예제로 실험 삼아 만들어봤다. 사용방법은 이전과 비슷하다 대신 다른 점은
초반에 함수를 정의해줘야 한다...... 무슨 원리냐면 이게 "클로저"라고 클라이언트 정보를 저장하는 방법이라는데 connection이라는 이벤트 안에 정의가 되면 클라이언트 마다 다른 정보를 가지게 되기 때문에 이 방법을 사용할수 있는것이다. (제가 정의한 var sockets는 클라이언트 마다 다르게 정의가 되어있어서 저장값이 달라짐....)
var io = socketio.listen(server);
io.sockets.on('connection',function(socket){
var sockets = new Sockets();
socket.on("join",function(data){
socket.join(data);
sockets.set('room',data);
});
socket.on("message",function(data){
sockets.get('room',function(error,room){
io.sockets.in(room).emit('message',data);
});
});
});
http://blog.naver.com/fundoong/220153918215
[출처] [socket.io] set get 없어짐.....|작성자 fundoong
'연구개발 > MYSQL' 카테고리의 다른 글
aws fdisk (0) | 2015.02.05 |
---|---|
optimizer_swtich 쿼리로 보기 (0) | 2015.02.05 |
MariaDB 10 CONNECT Engine - A Better Way to Access External Data (0) | 2015.01.30 |
Warm-up InnoDB Buffer Pool 워밍업 (0) | 2015.01.28 |
wireshark (0) | 2015.01.19 |