如何监听 sails.io.js 上的套接字发射?
How to listen to socket emit on sails.io.js?
我在后端使用 Sails 0.11,在前端使用 angularjs。
我在 sails 中有一个 TwitterController,使用以下代码打开 Twitter Streaming 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);
});
}
};
在我的前端(使用 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, 'tweet', tweet);
服务器发出?.
如有任何帮助,我将不胜感激!
Sails 库创建了一个全局变量 "io",因此您还可以使用:
io.socket.on("tweet", function(data){})
关注 wZVanG 的回答。我就是这样做的,使用 angular-sails angular 模块。
$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);
});
将收到的每条推文记录到浏览器的控制台。
我在后端使用 Sails 0.11,在前端使用 angularjs。
我在 sails 中有一个 TwitterController,使用以下代码打开 Twitter Streaming 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);
});
}
};
在我的前端(使用 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, 'tweet', tweet);
服务器发出?.
如有任何帮助,我将不胜感激!
Sails 库创建了一个全局变量 "io",因此您还可以使用:
io.socket.on("tweet", function(data){})
关注 wZVanG 的回答。我就是这样做的,使用 angular-sails angular 模块。
$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);
});
将收到的每条推文记录到浏览器的控制台。