为玩家每转一次计时器

时间:2018-04-03 13:14:57

标签: java socket.io

我是网络新手,目前正在通过java socket进行多人游戏。所以我想问一个简单的问题。游戏将是这样的:

  • 游戏需要3名玩家开始
  • 瓷砖为3x3

  • 如果所有玩家已加入服务器,则游戏将启动

  • 每个玩家将转动点击包含图像的按钮,例如:玩家点击按钮1,然后转向玩家b,玩家b点击按钮2然后转弯将被给予球员c等

我的问题是:

  • 我如何为每个玩家转弯计时器?我想要的是如果玩家没有点击/闲置一段时间,转弯将被投掷到下一个玩家。我需要在我的服务器或客户端管理它吗?以及如何?

  • 如何处理断开连接的播放器?如果玩家断开连接我希望转弯将自动转给下一位玩家。

2 个答案:

答案 0 :(得分:0)

理论上,客户端和服务器都可以处理计时器。如果服务器执行此操作,则在转向玩家X后启动计时器,并且在计时器用完后,它会停止玩家X的转向。如果您在客户端执行此操作,客户端可以在接收后启动计时器转弯,然后如果用户没有提供输入,则向服务器发送特定响应。

现在有什么更好的?当然是服务器解决方案。如果您的客户端断开连接,服务器将继续等待您的客户端的回复,这可能甚至不再回来。所以你最好在服务器端这样做。

答案 1 :(得分:0)

由于客户端断开连接可能导致此类超时,因此您很可能需要在服务器上实现它。例如,您可以通过创建计时器来执行此操作,例如, here。一旦计时器线程结束,就可以向客户端发送一条消息,该消息在时间内没有响应。这样做时,您应该考虑到客户端无法访问,当然