バックエンドでSails 0.11を使用し、フロントエンドでangularjsを使用しています。
Twitter ストリーミング API でストリームを開くために、次のコードを使用してTwitterControllerをセイルに配置しました (これはノード モジュールtwitを使用します)。
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);
});
}
};
私のフロントエンドで(angular-sailsモジュールを使用):
$sails.get('/twitter/open').then(function(resp) {
console.log(resp.status);
}, function(resp) {
alert('Houston, we got a problem!');
});
もちろん、これはバックエンド コントローラーに到達し、ストリーミングが開始されます。
Sails.sockets.emit(socketId, 'つぶやき', つぶやき);
サーバーによって発行されましたか?
ここで何か助けていただければ幸いです!.