лучшая практика онлайн-игр - PullRequest
0 голосов
/ 28 июля 2010

Я занимаюсь разработкой MMO на основе django, и мне интересно, как лучше всего было бы общаться между сервером и клиентом.Решения, которые я нашел:

  • периодические AJAX-вызовы
  • поддержание соединения в активном состоянии и отправка данных через него

Позднее редактирование:

Это могло бы состоять из "у вас есть сообщение", "пользователь х напал на вас", "ваш транспорт к х прибыл" и тому подобное.Их количество может увеличиться (примерно на 1 / секунду), но для обычного пользователя они не должны достигать 1 / мин.

Ответы [ 3 ]

0 голосов
/ 28 июля 2010

Не уверен, применимо ли это к тому, что вы ищете, но есть довольно хороший живой пример облегченного взаимодействия сервер-клиент с использованием node.js для простой службы чата:

http://chat.nodejs.org/

0 голосов
/ 10 июля 2014

Возможно, вы захотите взглянуть на crossbar

Crossbar.io - серверное программное обеспечение с открытым исходным кодом, которое позволяет разработчикам создавать распределенные системы, состоящие из компонентов приложения, которыеслабо связаны, общаются в (мягком) режиме реального времени и могут быть реализованы на разных языках

0 голосов
/ 28 июля 2010

Существует также третий метод, включающий «зависание» запросов:

  • Клиент запрашивает обновленную страницу (или что-то еще)
  • Сервер не отвечает сразу же
  • За некоторое время до истечения срока ожидания запроса на сервере происходит обновление состояния, и сервер наконец отвечает клиенту, который затем может обновить.
  • Если в течение периода обновления клиенту ничего нового не сообщается,затем сервер отвечает перед таймаутом сообщением «нет новостей», и клиент запускает другой «зависший» запрос.

Преимущества:

  • Клиент недолжен сделать Аякс.Вы могли бы даже сделать обычные HTML-страницы «интерактивными», как это.
  • Вероятно, не так много бессмысленного опроса трафика.

Недостатки:

  • Потребности серверадержать более активными соединения открытыми и обслуживать их как минимум один раз за период ожидания.Кроме того,
  • , в зависимости от того, насколько хорошо серверный код поддерживает многопоточность (предоставляет ли PHP какую-либо помощь?), Код может быть сложнее, чем обработка ответов AJAX.
...