我写了一段代码,允许我搜索所有推文标记为hello。
var stream = T.stream('statuses/filter', { track: 'hello', stall_warnings: true });
var counter = 0;
if (stream) {
console.log('connected!');
};
stream.on('tweet', function (tweet) {
console.log('tweet: '+ tweet.text);
console.log('by:' + ' @' + tweet.user.screen_name);
console.log('date:'+ ' ' + tweet.created_at + ' | ' + counter);
counter++;
});
如何重定向这个以便我可以创建一个看起来像Twitter流数据的网页,或类似的东西?也许使用AngularJS。
答案 0 :(得分:3)
您必须先创建一个Web服务器,然后尝试表达。
然后你可以使用sockets.io之类的东西从服务器到客户端网页进行通信。
然后在网页上你必须处理消息来显示它们(有角度的,或者只是jQuery) - 基本上在推特上你会通过socket.io从服务器发送消息到客户端网页,然后你的dront结束javascript将获取消息,解析它并决定如何显示它。
看看Sails.js,它基本上是通过集成套接字和更多东西来表达
修改强>
说您在server.js
,
var http = require('./server.js');
var io = require('socket.io')(http);
stream.on('tweet', function (tweet) {
io.sockets.emit("new tweet", {
text: tweet.text,
by: tweet.user.screen_name,
date: tweet.created_at,
counter: counter++;
});
});
require('socket.io')(http)
启动服务器上的“套接字管理器”(并为其发布js客户端代码),以便客户端可以通过套接字连接到服务器。
io.sockets.emit
会向所有已连接的客户端发送消息。
在您的网页上,您必须拥有类似的内容
<div id="tweets"></div>
<script src="/your/js/jquery.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on("new tweet", function(tweet) {
$('#tweets').append('tweet: ' + tweet.text + '<br>');
$('#tweets').append('by:' + ' @' + tweet.by + '<br>');
$('#tweets').append('date:'+ ' ' + tweet.date + ' | ' + tweet.counter + '<br>');
});
</script>
图书馆/socket.io/socket.io.js
由require('socket.io')(http)
早先发布,因此我们可以在我们的客户上使用它。
调用io()
基本上连接到服务器,并返回该连接的句柄(socket
),我们使用它来接收来自服务器的所有消息,并且每条消息都可以写入无论如何你想要的内容。
答案 1 :(得分:0)
使用socket.io
,您可以将事件从服务器广播到客户端,在这种情况下,您可以执行以下操作:
stream.on('tweet', function (tweet) {
io.sockets.emit("new tweet", tweet);
counter++;
});
你可以在客户端收到这样的事件:
var socket = io();
socket.on("new tweet", function(tweet){
//Do something with the tweet
});
这是一个非常基本的通用示例,有关详细信息,请查看官方文档here。