2017-02-03 1 views
0

Я использую серверную игру, используя nodejs и socket.io
В этой игре у меня есть два клиента (игрока), два игрока присоединятся к комнате и сервер отправит 1 вопрос с 4 ответами. Когда первый игрок отправляет правильный ответ на сервер, второй игрок не может отправить ответ клиенту (или сервер не принимает ответ).
У меня есть вопросы:
1. Как сервер знает этот вопрос, правильный ответ первого игрока и не принимает ответ от второго игрока?
2. Если в то же время, когда сервер проверяет ответ первого игрока, второй игрок отправляет ответ. Как проверить сервер, кто победит, если правильный ответ двух игроковВ то же время, два клиента отправляют ответ на сервер nodejs express (используйте socket.io)

ответ

1

У меня есть предположение об этой проблеме. Согласно моей точке зрения, когда сервер начинает прослушивать клиентские соединения ...

  1. ограничить количество клиентов до двух.

  2. когда соединения утвердилась как с клиентами, отправить вопрос в буфере для обоих клиентов и установить флаг = 0

  3. после того, как вопрос отправляется войти в петлю, чтобы получить обратно ответ от любой стороне клиента.

  4. При успешном принятии ответа проверьте его правильность, если его совпадения устанавливают флаг = 1 и прерывают цикл, который прекратит принимать ответы со стороны клиента.

Использование этого флага в этом цикле может помочь серверу узнать, не принимать ли больше ответов.

Для вашего второго вопроса, я бы сказал, если оба они ответят одновременно, то есть ответы второго клиента даже до проверки правильности ответа первого клиента могут привести к розыгрышу. Хотя у меня нет ясного предположения в этой ситуации.

Смежные вопросы