현재 Node.js 및 SOcket.io를 사용하는 스트리밍 앱을 만들고 있습니다. 지금 당장은 앱이 완벽하게 작동하지만 한 가지만 할 필요가 있습니다. 스트리밍 앱이므로 클라이언트에 많은 데이터 푸시가 있기 때문에 서버에 의해 푸시 된 가장 최근의 10 개의 객체 만 표시하려고합니다. 어떻게하면됩니까? 클라이언트 코드에서 또는 서버에서 직접해야합니까? 나는 정말로 모른다.node.jsand socket.io를 사용하여 웹 페이지로 스트리밍되는 데이터의 수 제한
다음은 클라이언트의 코드입니다
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
<script>
var socket = io.connect('http://192.168.1.29:5000');
socket.on('stream', function(tweet){
$('#tweetd').append(tweet+'<br>');
});
</script>
<div id="tweetd"></div>
</div>
서버 코드 :
var express = require('express')
, app = express()
, http = require('http')
, server = http.createServer(app)
,Twit = require('twit')
, io = require('socket.io').listen(server);
server.listen(8080);
// routing
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
var watchList = ['love', 'hate'];
var T = new Twit({
consumer_key: ''
, consumer_secret: ''
, access_token: ''
, access_token_secret: ''
});
io.sockets.on('connection', function (socket) {
console.log('Connected');
T.stream('statuses/filter', { track: watchList },function (stream) {
stream.on('tweet', function (tweet) {
io.sockets.emit('stream',tweet.text);
console.log(tweet.text);
});
});
});
당신이 나를 도울 수 있기를 바랍니다!
작동하지만이 작동하지 않습니다. 내 코드에 트위터 API를 통합하기 위해 twit 패키지를 사용하고 있습니다. 트위터에 메서드 슬라이스가 없다는 콘솔이 있습니다. – MaximeHeckel
배열에 일부 트윗을 넣으려고했지만 스트림 함수로 작업 중이므로 작동하지 않는 것 같습니다. 따라서 각 트윗에 액세스 할 수 있다고 생각하지 않습니다. – MaximeHeckel