Я занимаюсь разработкой простого приложения чата с помощью Node.js и express.ioПодключенные клиентов в express.io
Я хотел бы, чтобы отобразить список подключенных клиентов (или он-лайн для чата) все времени.
В express.io's doc нет четкого способа, как «получить» список подключенных клиентов, как только в комнату войдет новая, т. Е. Есть только «трансляция», но не «получить».
Кто-нибудь сделал это раньше?
Любые подсказки будут действительно полезными.
Спасибо!
Edit:
После попытки @ ответ jibsales'S. Я думаю, что мы почти там. Что клиенты возвращает меня не фактический массив клиентов, но это один:
[ { id: 'OWix3sqoFZAa20NLk304',
namespace:
{ manager: [Object],
name: '',
sockets: [Object],
auth: false,
flags: [Object],
_events: [Object] },
manager:
{ server: [Object],
namespaces: [Object],
sockets: [Object],
_events: [Object],
settings: [Object],
handshaken: [Object],
connected: [Object],
open: [Object],
closed: [Object],
rooms: [Object],
roomClients: [Object],
oldListeners: [Object],
sequenceNumber: 496205112,
router: [Object],
middleware: [],
route: [Function],
use: [Function],
broadcast: [Function],
room: [Function],
gc: [Object] },
disconnected: false,
ackPackets: 0,
acks: {},
flags: { endpoint: '', room: '' },
readable: true,
store: { store: [Object], id: 'OWix3sqoFZAa20NLk304', data: {} },
_events:
{ error: [Function],
ready: [Function],
connection: [Function],
NewChatPrivateLine: [Function],
NewIdea: [Function],
NewChatLine: [Function],
NewPost: [Function] } } ]
функции являются:
var app = require('express.io')();
app.io.route('connection', function(req) {
req.io.join(req.data.room);
var clients = app.io.sockets.clients(req.data.room);
console.log(clients)
app.io.room(req.data.room).broadcast('announce', {
user: req.data.user,
clients: clients
})
});
Это фактически возвращает ошибку (данные = JSON.stringify (эв); TypeError: Преобразование круговой структуры в JSON), поскольку массив имеет несколько круглых объектов и, следовательно, не может быть передан.
Любые мысли?
Вы всегда можете просто следить за ними, как они соединяются? – Brad
Я пытался что-то в этом роде, но результат был чрезвычайно сложным для чего-то, что, по-моему, можно было решить более простым и элегантным способом. У вас есть идея кода для отслеживания? – user2988332