socket.io에서 연결 수를 얻는 방법이 있습니까?socket.io를 사용하여 소켓 연결 수를 얻는 방법
나는 내가 socket.broadcast을 한 경우에 "지금 연결 X 사용자는"
는 기본적으로 나는에 가서 얼마나 많은 연결을 계산하려는 말한다 내 사이트에 메시지를 표시합니다.
socket.io에서 연결 수를 얻는 방법이 있습니까?socket.io를 사용하여 소켓 연결 수를 얻는 방법
나는 내가 socket.broadcast을 한 경우에 "지금 연결 X 사용자는"
는 기본적으로 나는에 가서 얼마나 많은 연결을 계산하려는 말한다 내 사이트에 메시지를 표시합니다.
당신은 모든 클라이언트의 소켓 인스턴스를 반환()
io.sockets.clients().length
는 기본적으로 io.sockets.clients 사용할 수 있습니다. 당신이 방을 사용하는 경우는 특정 방에
Using this code Server site
var noOfUser=[];
socket.on('someEventFromClient',function(data){
//User name must unique
socket.username=data.username;
noOfUser.push(data.username);
//Now you can emit no of user to client are any where
console.log('NO of user:'+noOfUser.length);
});
socket.on('disconnect',function(){
for(var i=0;i<noOfUser;i++)
{
if(noOfUser[i]==socket.username)
{
noOfUser.splice(i,1);
}
//Now you can emit no of user to client are any where
console.log('NO of user:'+noOfUser.length);
}
});
클라이언트 측 모든 클라이언트의 소켓 인스턴스를 반환하기 때문에 당신은 더 나은
io.sockets.clients('room').length
를 사용한다 : 사용자가 연결할 때 소켓 서버가이 이벤트를 방출을 socket.emit ('someEventFromCLient', {username : 'someuniqueID'});
동일한 사용자가 여러 이벤트에 대해 서로 다른 연결을 설정하는 경우 클라이언트는 여전히 해당 사용자에 대해 1입니까? – chovy
앞에서 설명한 내용은 연결된 소켓 수를 반환합니다. 따라서 브라우저에서 5 개의 탭을 열면 5가 반환됩니다. 서버는 ID로 소켓을 유지합니다. 단일 사용자로 계산하려면 IP 주소가 –
인 사용자 수를 세는 것과 같은 방법을 사용하는 것이 좋습니다. 세션 당 단 하나의 소켓이 있는지 확실하지 않았습니다. – chovy