Nodejs와 Socket.io를 사용하고 있습니다. 클라이언트가 연결되면 새 JavaScript 객체가 만들어집니다.연결을 끊을 때 객체 제거 socket.io
이 개체는 영원히 남을 수 있습니까? 클라이언트 연결이 끊어지면 삭제하거나 제거해야합니까? 객체를 제거 할 수 있습니까? 삭제가 작동하지 않는다는 것을 알고 있습니다 ...
감사합니다.이 질문은 일반적인 질문 일 뿐이며 어떤 제안이라도 도움이 될 것입니다.
감사합니다.
Nodejs와 Socket.io를 사용하고 있습니다. 클라이언트가 연결되면 새 JavaScript 객체가 만들어집니다.연결을 끊을 때 객체 제거 socket.io
이 개체는 영원히 남을 수 있습니까? 클라이언트 연결이 끊어지면 삭제하거나 제거해야합니까? 객체를 제거 할 수 있습니까? 삭제가 작동하지 않는다는 것을 알고 있습니다 ...
감사합니다.이 질문은 일반적인 질문 일 뿐이며 어떤 제안이라도 도움이 될 것입니다.
감사합니다.
정리를 수행하지 않으면 그렇습니다. 내가 글로벌하게 만들고 있다고 가정하기 때문에 그들은 계속 거기에 머물러있을 것입니다.
당신은를 정리 disconnect
이벤트 리스너에 결합하여 사용자가 연결을 끊해야합니다
var clients = {}
sockets.on('connection', function(socket) {
clients[socket.id] = socket;
socket.on('disconnect', function() {
delete clients[socket.id];
});
});
내가 허용 대답은 정말 문제를 해결하지 생각합니다. 당신이 할 :
io.on('connection', function(socket){
socket.on('event', function(){
console.log('event fired');
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
소켓 이벤트 청취자가 io.on 내에서 생성되는()의 콜백. socket.io 내부적으로 io.on 내의 모든 eventlisenters를 제거() 콜백 않는 한
socket.on('disconnect', function(){
delete socket.namespace.sockets[this.id];
console.log('user disconnected');
});
: 분리 한 후, 이러한 이벤트 청취자가 정말 가정 은 같은 것을 할 ... 제거되지 않습니다. 이벤트 리스너 유지
엄격 모드에서는 삭제가 허용되지 않습니다. 다른 방법으로이를 수행 할 수 있습니까? –
위대해, 감사합니다! 나는 '클라이언트'가 다른 객체도 추적 할 수있는 동일한 방법을 사용할 수 있다고 가정합니다. 생성 된 '소켓'기능 이외의 다른 여러 객체가 있습니다. – dzm
jup! 어떤 사람들은 "소켓"변수 안에 객체를 추가하면 자동으로 파괴됩니다. 'socket.data = "foo"'그런 다음 클라이언트는 그 소켓에 대한 id를 가지고 있습니다. –
완벽한, 좋은 생각입니다. 다시 한 번 감사드립니다! – dzm