সকেট.ইও 1.4
Object.keys(io.sockets.sockets); আপনাকে সমস্ত সংযুক্ত সকেট দেয়।
Socket.io 1.0 Socket.io 1.0
হিসাবে, প্রকৃত স্বীকৃত উত্তরটি আর বৈধ নয়। তাই আমি একটি ছোট ফাংশন করেছি যা আমি একটি অস্থায়ী সংশোধন হিসাবে ব্যবহার করি:
function findClientsSocket(roomId, namespace) {
var res = []
// the default namespace is "/"
, ns = io.of(namespace ||"/");
if (ns) {
for (var id in ns.connected) {
if(roomId) {
var index = ns.connected[id].rooms.indexOf(roomId);
if(index !== -1) {
res.push(ns.connected[id]);
}
} else {
res.push(ns.connected[id]);
}
}
}
return res;
}
অপি ফর নো নোস্পেস হয়ে যায়
// var clients = io.sockets.clients();
// becomes :
var clients = findClientsSocket();
// var clients = io.sockets.clients('room');
// all users from room `room`
// becomes
var clients = findClientsSocket('room');
নেমস্পেসের জন্য এপিআই হয়ে যায়:
// var clients = io.of('/chat').clients();
// becomes
var clients = findClientsSocket(null, '/chat');
// var clients = io.of('/chat').clients('room');
// all users from room `room`
// becomes
var clients = findClientsSocket('room', '/chat');
এই সম্পর্কিত প্রশ্নটিও দেখুন , যাতে আমি একটি ফাংশন দিচ্ছি যা প্রদত্ত ঘরের জন্য সকেটগুলি ফেরত দেয়।
function findClientsSocketByRoomId(roomId) {
var res = []
, room = io.sockets.adapter.rooms[roomId];
if (room) {
for (var id in room) {
res.push(io.sockets.adapter.nsp.connected[id]);
}
}
return res;
}
সকেট.আইও 0.7
কোনও নাম স্থানের জন্য এপিআই :
var clients = io.sockets.clients();
var clients = io.sockets.clients('room'); // all users from room `room`
জন্য একটি নামস্থান
var clients = io.of('/chat').clients();
var clients = io.of('/chat').clients('room'); // all users from room `room`
দ্রষ্টব্য: যেহেতু দেখে মনে হচ্ছে যে সকেট.আইপিএল ভাঙার ঝুঁকির ঝুঁকিপূর্ণ এবং কোনও সমাধান বাস্তবায়নের বিশদগুলিতে নির্ভর করে তাই এটি ক্লায়েন্টদের নিজেরাই ট্র্যাক করার বিষয় হতে পারে:
var clients = [];
io.sockets.on('connect', function(client) {
clients.push(client);
client.on('disconnect', function() {
clients.splice(clients.indexOf(client), 1);
});
});