Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用node.js和socket.io每秒广播一次_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript 使用node.js和socket.io每秒广播一次

Javascript 使用node.js和socket.io每秒广播一次,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我目前正在使用node.js和socket.io编写一个拍卖脚本。 该网站将有500-1000名登录用户在拍卖期间查看单个页面。同一时间只有一件物品在出售,类似于在拍卖行进行的真实拍卖 我将广播一个倒计时计时器,从服务器到客户端的所有登录用户。在服务器端,我将使用1秒的setInterval()对拍卖结束时间进行倒计时。除此之外,发送的唯一其他消息将是当前出价从单个客户机传递到服务器,然后广播到所有客户机。 这是一种可靠的方法吗?它是否能够处理服务器上的使用情况 如果没有,有没有更好的方法 感谢

我目前正在使用node.js和socket.io编写一个拍卖脚本。 该网站将有500-1000名登录用户在拍卖期间查看单个页面。同一时间只有一件物品在出售,类似于在拍卖行进行的真实拍卖

我将广播一个倒计时计时器,从服务器到客户端的所有登录用户。在服务器端,我将使用1秒的setInterval()对拍卖结束时间进行倒计时。除此之外,发送的唯一其他消息将是当前出价从单个客户机传递到服务器,然后广播到所有客户机。 这是一种可靠的方法吗?它是否能够处理服务器上的使用情况

如果没有,有没有更好的方法


感谢Shane提供的计时器值,请在服务器端自身每秒更新本地计时器。每当有用户进来时,给他这个值以及计时器的总值。然后,客户机将根据dandavis的评论在本地启动自己的计时器,但在服务器端保留一些间隔,如15秒或10秒,服务器将在服务器端广播当前计时器值,以便客户机相应地同步

简言之,服务器将在10(n:由您决定)秒后每隔一秒广播一次,但它将在本地每秒更新计时器变量。无论何时客户端进入,它都将获得总计时器值和当前计时器值


播放当前出价的Rest功能可以以正常方式完成。

最好告诉客户距离拍卖结束还有多少毫秒,让他们倒计时,而不是发送数千个重复数据包。你甚至可以在价格包中偷偷添加一个时间戳,以便偶尔重新同步所有客户端,以防windows在拍卖过程中稍微更新时钟。我也喜欢这种方法,因为这意味着计时器可以在拍卖的最后10秒内更新到新的时间。也就是说,如果一个新的出价在5秒时到达,计时器可以重置为10秒。感谢响应,这使得服务器不必每秒运行一次,如果有500个用户在线,则可以每秒发送500个数据包。嗨,Shane,我还在使用node.js+socket.io编写拍卖脚本。该站点已经使用PHP、MySQL开发。我需要知道如何对所有拍卖进行倒计时,但目前只有一次拍卖被售出。我已经在网站上实现了node+socket.io,但超过500名用户访问该网站意味着计时器没有加载,服务器没有响应。您提到过使用了setinterval,我也应用了同样的方法,我们每秒钟向客户广播一次数据,您如何获得拍卖相关数据的类似时间,价格等可以帮我解决问题。