簡體   English   中英

每秒發出的socket.io

[英]socket.io emitting every second

真的很簡單。

我正在創建一個同步的流應用程序,因此我想通過socket.io發出每秒正在播放的內容的當前時間碼,並將其廣播給其他客戶端。

這明智嗎? 每秒撥打同一電話有任何弊端,我可以同時撥打其他電話嗎?

PS我沒有進行任何數據庫調用或在服務器端進行任何處理。

觀看視頻的客戶不多,應該沒問題,但是最終,如果觀看的用戶數量開始增加,您將遇到小的滯后。

另一種方法是跟蹤服務器,例如,您可以執行此操作

視頻會自動播放加載或發出事件以啟動計時器服務器端

// from client-side
socket.emit('videoplaying',/* some video data */);


在服務器端,您可以根據套接字ID啟動小型計時器

 function Timer(VideoInformation){ this.currentTime=0; this.startedAt=+new Date(); this.endedAt=null; this.title=VideoInformation.title||'Untitled'; this.interval=null; this.play=function(){ var self=this; this.interval=setInterval(function(){ self.currentTime=+new Date(); },1000); } this.stop=function(){ if(this.interval!==null){ clearInterval(this.interval) } } //.. pause/end/reset .. } //server side var TimeTracker={}; // handling new videoplaying socket.on('videoplaying',function(videoInformation){ if(!TimeTracker.hasOwnProperty(socket.id)){ TimeTracker[socket.id]=[]; } TimeTracker[socket.id].push(new Timer(videoInformation)); }); 


最后,您將事件偵聽器添加到用戶正在查看的當前視頻中,以通知服務器計時器它已暫停/停止/單擊特定的視頻時間等。

希望它會有所幫助,這不是一個可行的解決方案,而是一個概念。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM