2015-04-24 2 views
0

Я использую Socket.io версии 0.9 и следующий код работает отлично:Socket.IO первое соединение

// Socket.IO - Executes for Every Socket Connection 
io.on('connection', function (socket) { 
    socket.on('userid', function (userid) { 
    socket.userid = userid; 
    }); 
}); 



// Socket.IO - Executes on First Socket Connection Only 
io.once('connection', function (socket) { 
    auditMessagesTableForNewMessages(socket); 
    auditRelationsTableForNewFriendships(socket); 
}); 

Я просто повышен до Socket.io 1.3.5 и я нашел Метод .once() больше не существует. Мне нужно иметь возможность запускать несколько функций при первом запуске сокета (который вы можете увидеть в функции once()).

Есть ли способ добиться такого же результата с новым гнездом 1.3.5? например: выполните эти 2 функции один раз?

спасибо :)

ответ

1

Вы можете установить регулярный обработчик событий, а затем удалить обработчик события после того, как он называется первый раз:

function handleFirstConnection(socket) { 
    auditMessagesTableForNewMessages(socket); 
    auditRelationsTableForNewFriendships(socket); 
    io.removeListener('connection', handleFirstConnection); 
} 

io.on('connection', handleFirstConnection); 
+0

спасибо куч :) Я только учусь Node.js и действительно снимите свой вход :) – Adam

Смежные вопросы