2015-06-04 2 views
2

Я использую Паруса 0.11 в моем конце и angularjs в интерфейсе.Как прослушивать сокет испускать на sails.io.js?

У меня есть TwitterController в парусах со следующим кодом, чтобы открыть поток с API Twitter Streaming (это использует узловой модуль упрека):

var Twit = require('twit'); 

var T = new Twit(sails.config.twit); 

var stream = T.stream('statuses/filter', { 
    track: ['apple'] 
}); 

module.exports = { 
    open: function(req, res) { 
     if (!req.isSocket) { 
      return res.badRequest(); 
     } 

     var socketId = sails.sockets.id(req.socket); 

     stream.start(); 

     stream.on('tweet', function(tweet) { 
      sails.log.debug('Tweet received.'); 
      sails.sockets.emit(socketId, 'tweet', tweet); 
     }); 
    } 
}; 

В моем переднем конце (с угловыми парусами модуля):

$sails.get('/twitter/open').then(function(resp) { 
    console.log(resp.status); 
}, function(resp) { 
    alert('Houston, we got a problem!'); 
}); 

Это, конечно, достигает мой серверную контроллер, и запускает потоковый, б ut Как я могу прослушать

sails.sockets.emit (socketId, 'tweet', tweet);

, выданный сервером ?.

Буду признателен за любую помощь здесь !.

ответ

2

После ответа wZVanG в. Вот как я это сделал, используя угловой модуль угловых парусов.

$sails.get('/twitter/open').then(function(resp) { 
    console.log(resp.status); 
}, function(resp) { 
    alert('Houston, we got a problem!'); 
}); 

$sails.on('tweet', function(message) { 
    console.log(message); 
}); 

Это записывает каждый твит, полученный на консоль браузера.

3

Sails библиотека создает глобальную переменную "И.О.", так что вы можете использовать также:

io.socket.on("tweet", function(data){}) 
+0

Вы правы, спасибо. Я отправляю свой собственный ответ, который использует io.socket.on, но с модулем угловых парусов –

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