实时荷兰式拍卖系统的系统架构

System architecture for a Real-time Dutch Auction system

我正在开发一个带有荷兰式拍卖和常规式拍卖的应用程序。 web-app在PHP和Jquery,使用Pusher API进行实时交互,因为我在Node.js还不够舒服直接用。

在常规风格的拍卖中,我没有真正的问题,因为每个客户的出价位置都会触发客户端 javascript 事件,并且客户将出价发布到服务器,然后再发布到服务器将新的出价实时推送给每个客户。对于荷兰人,服务器会在没有任何客户端事件的情况下不断向所有客户端更新新价格,当客户端最终接受时,服务器会向所有客户端报告。

In a Dutch-style auction, the prices drop gradually UNTIL someone accepts the bid, and if nobody accepts the bid before a preset (low) threshold is reached, the price resets to its initial high value, over and over again.

我不知道从服务器端广播新价格的最佳方式,因为价格会不时下降。新的价格由服务器端决定,变化率不一定有规律。 一个解决方案可能是让每个客户端浏览器对服务器进行连续轮询以检查是否有新价格,但我不确定这是否是最有效的方式,或者如何最好地做到这一点.

请告诉我实时执行此操作的正确方法?谢谢

您可以在每次更新时使用 Pusher 广播价格。如果客户端接受出价,他们应该向服务器发送一个 HTTP 请求,其中包含他们接受的价格。当服务器收到此客户端请求时,它应该使用 Pusher 广播另一个事件以通知其他客户端投标已被接受。