Я пытаюсь подключить множество клиентов socket.io для разных URL-адресов в Node.js следующим образом:
app.get('/:id',function(req,res){
io.of('/'+id).on('connection',function(socket){
socket.emit('hello');
})
});
Это работает, однако есть проблема:
Когда браузер обновляетсянапример, на странице http://localhost:3000/xyz событие socket.emit запускается два раза.
Если кто-то заходит на страницу http://localhost:3000/xyz 10 раз, событие запускается 10 раз.
Это не хорошо, потому что каждый раз, когда пользователь посещает эту страницу, события сокетов будут запускаться n + 1 раз.
Что нужно сделать, чтобы я мог зарегистрировать сокеты для разных URL-адресов и вв то же время не имеют этой аномалии.
Еще одна вещь:
Если я сделаю это:
var sock;
io.of('/'+xyz).on('connection',function(socket){
sock=socket;
})
app.get('/:id',function(req,res){
sock.emit('hello');
})
Если я использую приведенный выше код, сокет не получаетуспешно сохранено в переменную sock в time .Это означает, что я должен сделать setInterval около 1000 .. чтобы строка
sock=socket
была запущена.
Пожалуйста, помогите мне.