Как мне реализовать COMET для моей (Flash) браузерной игры?

В настоящее время я пытаюсь написать браузерную игру, которая позволяет нескольким пользователям перемещаться по 2D-карте. Он основан на RPG и требует COMET в качестве метода для двух пользователей, появляющихся и взаимодействующих на одном экране, если они окажутся в одном кадре.

Также в игре я встраиваю карты в SWF-файл, но использую HTTP-запросы для получения данных с локального сервера, когда игрок входит в некоторые ключевые зоны, которые я выделил. Я думал об использовании XMLSocket, но мне было интересно, есть ли библиотека или какая-то другая реализация, отличная от XMLSocket, которая поможет мне передавать или передавать информацию нескольким браузерам.

(Кстати, я относительно новичок во взаимодействии с Flash и сервером и клиентом, изучаю его около 4 недель... ссылки полезны!)

2 ответа

Единственное реальное решение - Long-Polling или Streaming...BlazeDS реализует оба варианта.

  • Я слышал, что BlazeDS и LiveCycle Data Services от Adobe поддерживают передачу данных. Хотя LCDS является коммерческим, первый из них с открытым исходным кодом. Я не использовал ни одного из них, поэтому не могу ничего сказать о производительности или других аспектах.
  • Использование XMLSocket требует от пользователя открытия соответствующего порта, который может быть заблокирован брандмауэром (иногда корпоративным брандмауэром, над которым пользователь не имеет никакого контроля). (это касается даже BlazeDS и LCDS, я считаю).
  • Вы можете попробовать старый добрый URLLoader + URLRequest комбинация для опроса сервера через фиксированные интервалы для обновлений. Если вы планируете провести длинный опрос (отказывая в ответе до тех пор, пока что-то не произойдет), имейте в виду, что флэш-тайм-аут запрашивает URL-адреса через 30 секунд.
Другие вопросы по тегам