我正在开发一个在客户端浏览器中运行的多人游戏测验游戏。它在服务器端使用socket.io和node.js,在客户端使用javascript。
问题从数据库中挑选并同时发送给每个玩家,但较慢的互联网连接可能意味着他们将在不同时间接收它们。
可能的解决方案:
那么我怎样才能确保没有玩家有不公平的优势广告在其他人面前收到问题?
答案 0 :(得分:1)
答案 1 :(得分:1)
当用户收到问题并且用户提交了答案时,可能的解决方案是在服务器上存储信息。
作为补充,您可以定义所有用户都可以提交答案的时间范围(又名 round )。
您可以通过时间戳中的最小差异来定义获胜者。 Socket.io延迟不应该在逻辑中产生任何重大问题,因为似乎你发送的数据不是那么多,同时套接字有心跳的逻辑,如果客户端有连接问题 - 他将被断开连接。为了降低此逻辑被破坏的风险,您可以减少Socket.io库可以考虑断开连接的时间 - pingInterval
和pingTimeout
可以帮助您。
答案 2 :(得分:0)
只有在所有参与者的登录及其套接字连接建立后,您才可以编写服务器端逻辑来发送问题..; - )