我正在制作一个React / Node.js应用程序,该应用程序将基于某个过滤器显示实时推文,并确定我需要使用Twitter的流API。不幸的是,经过一些研究,我发现Twitter的API不允许CORS,因此我只能从node.js服务器调用Twitter的API。
我已经设置了服务器来接收来自Twitter的流,并且一切正常,但是现在我需要将数据实时地发送到客户端。对于使用流而言,我不确定是什么最好的方法是每次服务器上的流获取新数据/ tweet时都使客户端保持更新。
对于如何处理此问题,我有一些模糊的想法,包括学习使用Web套接字或服务器发送的事件,但是我从未使用过这两种工具,因此我很难确定这是否是正确的方向。
如果有人对如何处理这种情况有任何建议,我将非常感谢。
我的服务器端代码如下...
// Node.js Server
const Twitter = require('twitter'); // Twitter for Node.js library
//initializing Twitter client
var client = new Twitter({
consumer_key: 'my key',
consumer_secret: 'my secret',
access_token_key: 'token key',
access_token_secret: 'token secret'
});
//accesses Twitter's statuses/filter streaming endpoint + parameters
var twitterStream = client.stream('statuses/filter', {
track: 'rangers',
language: 'en'
});
twitterStream.on('data', function(event) {
// when the Twitter stream has new data how do I keep the client updated with it?
console.log(event.text);
});
twitterStream.on('error', function(error) {
throw error;
});