2014-02-02 3 views
3

Я использую sails.js с необработанным API socket.io. Теперь, когда пользователь отключается, я хочу сообщить всем остальным. Обычно я хотел бы сделать что-то вроде:Logic on disconnect sails.js socket.io

socket.on('disconnect', function() { 
    //disconnect logic 
}); 

Но я не знаю, как я выполнил бы эту внутреннюю часть контроллера sails.js. Любая помощь будет оценена по достоинству.

ответ

3

Начиная с Sails v0.9.8, ваш файл config/sockets.js будет иметь как onConnect, так и onDisconnect методы, которые дают вам доступ как к соединителю/разъединению, так и к сеансу.

3

Мы можем использовать config/sockets.js, как показано ниже.

// config/sockets.js 
onConnect: function(session, socket) { 
// If a user is logged in, subscribe to them 
if (session.user) { 
    User.subscribe(socket, session.user); 
} 

}, 

onDisconnect: function(session, socket) { 

    // If a user is logged in, unsubscribe from them 
    if (session.user) { 
    User.unsubscribe(socket, session.user); 
    // If the user has no more subscribers, they're offline 
    if (User.subscribers(session.user.id).length == 0) { 
    console.log("User "+session.user.id+" is gone!"); 
    // Do something! 
    } 
    } 

} 
2

Для парусов 0.12.3

В config/sockets.js

// beforeConnect: function(handshake, cb) { 
    // // `true` allows the connection 
    // return cb(null, true); 
    // 
    // // (`false` would reject the connection) 
    // }, 


    /*************************************************************************** 
    *                   * 
    * `afterDisconnect`              * 
    *                   * 
    * This custom afterDisconnect function will be run each time a socket  * 
    * disconnects                * 
    *                   * 
    ***************************************************************************/ 
    // afterDisconnect: function(session, socket, cb) { 
    // // By default: do nothing. 
    // return cb(); 
    // }, 
Смежные вопросы