C # / asp.net - браузерная игра, обновление позиции игрока для всех подключенных клиентов

1

Вот краткий обзор/контекст того, где я нахожусь. В настоящее время я работаю над игрой, в которой одновременно будет много подключенных игроков. Сервер - это брандмауэр ASP.net/C#, а передняя часть - в javascript.

В любой момент времени мне нужно знать позицию x, y каждого игрока и передавать все подключенные игроки, чтобы клиент обновил браузер. То, что я рассматривал, заключается в том, что в любой момент, когда игрок перемещается, я отправляю свои координаты через вызов ajax на сервер, который будет обновлять объект игрока, где у меня есть наблюдатель, слушающий состояния грязных игроков.

Тем не менее, я немного потерял, как фактически передавать эти данные всем другим клиентам. Также использование ajax-вызова для этого похоже на то, что он может быть медленным.

Со всем этим сказано,

  1. Какие методы доступны для отправки данных подключенным клиентам через HTTP? Это игра на основе браузера. Мне нужен какой-то цикл на клиенте, который постоянно запрашивает обновления для всех игроков? и если да, то есть ли экономически эффективный способ сделать это, не замедляя все?

  2. Я провел некоторое исследование по внедрению каких-либо подключений сокетов к серверу/клиенту TCP и использованию потоковой передачи - но я прочитал несколько статей о том, что потоки не были лучшим решением для приложений на основе asp.net. Я не хочу спускаться с этой кроличьей тропы, если она здесь не применяется.

Любая предоставленная информация будет принята с благодарностью!

Спасибо.

  • 2
    «Какие методы доступны для отправки данных подключенным клиентам через HTTP?» - Конкретное название технологии, которую вы ищете, - это Web Sockets. В частности, SignalR может быть инструментом, который вы ищете.
  • 0
    Отлично! Это выглядит как раз то, что я искал.
Теги:
model-view-controller

1 ответ

0
Лучший ответ

SignalR поможет вам работать в режиме реального времени с помощью двунаправленной связи между сервером и клиентом.

  • 0
    Вы и Дэвид оба ответили на вопрос. Спасибо за информацию!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню