Javascript socket.io每秒发射一次
很快的问题 我正在创建一个同步流媒体应用程序,因此我希望通过socket.io发送每秒正在播放的内容的当前时间码,并将其向下广播到其他客户端 这明智吗?每秒打同一个电话有什么缺点吗?我可以同时打其他电话吗Javascript socket.io每秒发射一次,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,很快的问题 我正在创建一个同步流媒体应用程序,因此我希望通过socket.io发送每秒正在播放的内容的当前时间码,并将其向下广播到其他客户端 这明智吗?每秒打同一个电话有什么缺点吗?我可以同时打其他电话吗 另外,我不会打任何数据库电话或在服务器端进行任何处理。没有太多的客户端观看视频,这应该没问题,但如果观看视频的用户数量开始增加,最终你会遇到小的延迟 另一种方法是跟踪服务器,例如,您可以这样做 使用autoplay加载视频或发出事件以启动计时器服务器端 // from client-side
另外,我不会打任何数据库电话或在服务器端进行任何处理。没有太多的客户端观看视频,这应该没问题,但如果观看视频的用户数量开始增加,最终你会遇到小的延迟 另一种方法是跟踪服务器,例如,您可以这样做 使用autoplay加载视频或发出事件以启动计时器服务器端
// 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));
});
最后,将事件侦听器添加到用户正在查看的当前视频中,以通知服务器计时器它已暂停/停止/单击特定视频时间等
希望有帮助,这不是一个有效的解决方案,更多的是一个概念。这正是我需要的!我只是刚刚意识到,我希望时间跟踪独立于任何用户。因此,如果我能在第一个用户加入时运行一个跟踪器,那就太完美了。我欠你我所有的互联网,先生!