2015-06-04 81 views
2

我在我的後端使用Sails 0.11,並在前端使用angularjs如何監聽sails.io.js上的套接字?

我有一個TwitterController在用下面的代碼帆,打開與微流API流(此使用節點模塊):

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!'); 
}); 

這當然達到我的後端控制器,並且所述流開始,b我如何聽

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

帆庫創建一個全局變量 「IO」,所以你也可以使用:

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

你說得對,謝謝。我張貼我自己的答案,它使用io.socket.on,但與角帆模塊 –