gpt4 book ai didi

node.js - 使用node.js和socket.io限制流式传输到网页的数据数量

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:41 26 4
gpt4 key购买 nike

我目前正在使用 Node.js 和 SOcket.io 开发一个流应用程序。目前该应用程序工作正常,但我需要做一件事:由于它是一个流应用程序,因此有太多数据推送到客户端,所以我只想显示服务器推送的 10 个最新对象。我怎样才能做到这一点 ?我应该在客户端代码上执行此操作还是直接在服务器上执行此操作?我真的不知道。

这是客户端的代码

<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);

});
});
});

希望你能帮助我!

最佳答案

您应该在服务器上执行此操作。节省带宽和时间。

如果您有要发回的对象列表,只需在通过 socket.io 发送之前对列表进行切片即可。

tweets = tweets.slice(tweets.length-10);

现在通过 socket.io 发送您的推文,您将只能获得列表中的最后 10 条推文。

或者如果您列出的顺序相反:

tweets = tweets.slice(0,10);

关于node.js - 使用node.js和socket.io限制流式传输到网页的数据数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16470970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com