[英]socket.io emitting every second
真的很简单。
我正在创建一个同步的流应用程序,因此我想通过socket.io发出每秒正在播放的内容的当前时间码,并将其广播给其他客户端。
这明智吗? 每秒拨打同一电话有任何弊端,我可以同时拨打其他电话吗?
PS我没有进行任何数据库调用或在服务器端进行任何处理。
观看视频的客户不多,应该没问题,但是最终,如果观看的用户数量开始增加,您将遇到小的滞后。
另一种方法是跟踪服务器,例如,您可以执行此操作
视频会自动播放加载或发出事件以启动计时器服务器端
// from client-side
socket.emit('videoplaying',/* some video data */);
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.