2015-06-04 82 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,但与角帆模块 –