亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法緩存 Socket.IO 響應?

有沒有辦法緩存 Socket.IO 響應?

Qyouu 2022-09-23 16:58:17
例如,如果我得到這個網站插座: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));

  })

});

所以加入回調功能使用它:)


也許像這樣更新你的代碼?


查看完整回答
反對 回復 2022-09-23
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號