Я создаю приложение React / Node.js, которое будет отображать твиты в реальном времени на основе определенного фильтра и выяснило, что мне нужно использовать потоковый API Twitter.К сожалению, после некоторых исследований я вижу, что API Twitter не поддерживают CORS, поэтому я могу вызывать API Twitter только с моего сервера node.js.
Я настроил свой сервер для приема потока из твиттера, и все работает, но теперь мне нужно отправлять эти данные клиенту в режиме реального времени по мере их поступления. Будучи новичком в использовании потоков, яЯ не уверен, что лучший способ держать клиента обновленным каждый раз, когда поток на моем сервере получает новые данные / твиты.
У меня есть несколько смутных идей о том, как справиться с этим, в том числе, возможно, научиться использовать веб-сокеты или события, отправленные сервером, но я никогда не использовал ни один из этих инструментов, поэтому мне трудно определить, является ли это правильным направлением дляидти.
Если у кого-нибудь есть какие-либо советы о том, как справиться с этой ситуацией, я буду очень признателен.
Мой код на стороне сервера выглядит следующим образом ...
// 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;
});