例如,如果我得到这个网站插座:let itemsArray = [];function fetchData() { itemsArray = await db.query(`SELECT * FROM Items`);}function emitData() { io.sockets.in("room_foo").emit("data", JSON.stringify(itemsArray));}setInterval(() => fetchData(), 2500);setInterval(() => emitData(), 5000);基本上这意味着以下内容:每5秒流式传输到room_foo JSON数组中的所有客户端,每2,5秒获取数据现在,这就是问题所在。当我连接到该WebSocket时,我必须等待5秒钟,直到下一个发出事件发生。有没有办法将之前的响应缓存为X秒(在此特定情况下为5秒),并在有人连接时一直发出该响应,这样他们就不会有这样的延迟?即使新用户连接(他们没有浏览器缓存) - 我的意思是服务器缓存
1 回答
温温酱
TA贡献1752条经验 获得超4个赞
let itemsArray = [];
function fetchData() {
itemsArray = await db.query(`SELECT * FROM Items`);
io.sockets.in("room_foo").emit("data", JSON.stringify(itemsArray));
}
setInterval(() => fetchData(), 2500);
io.on('connection', (socket) => {
// if user gets in to room_foo then send it so
socket.join('room_foo', () => {
io.sockets.in("room_foo").emit("data", JSON.stringify(itemsArray));
})
});
所以加入回调功能使用它:)
也许像这样更新你的代码?
添加回答
举报
0/150
提交
取消