2009-02-12 3 views
1

В настоящее время я кодирую онлайн-поворот на основе rpg для задания. В игре игроки могут общаться друг с другом и отправлять свои действия после завершения хода. Каков наилучший способ позаботиться об обмене данными между игроками. Сокеты или хранение всей информации в базе данных, и программа периодически выполняет запросы на проверку любых обновлений? Если не будет лучшего подхода.Сокеты Silverlight или db-запросы?

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

ответ

3

В Silverlight вы можете подключиться только к хосту, обслуживавшему приложение Silverlight, чтобы исключить клиентские сокеты. Все в вашей игре (включая чат) должно пройти через сервер.

Windows Communication Foundation (WCF) неплохо работать с Silverlight2. Наличие вашей игры пошагово делает вещи немного легче, потому что это означает, что вам не нужно поддерживать то же самое игровое состояние между игроками в реальном времени (то есть: не стремиться к максимальной задержке в 100 мс).

1

Используйте WCF, если это возможно.

+0

только ограничивается SilverLight для назначения – Drahcir

+0

Drahcir - если вам нужно поговорить с базой данных, WCF это лучший способ сделать это с помощью Silverlight. –

+0

О, извините, вы неправильно поняли, подумал, что u означает wpf. Виноват – Drahcir

1

Есть две основные возможности. Вы можете использовать Сокеты, или вы можете использовать Дуплекс WCF. Вот компромиссы:

Sockets => лучше производительность по сравнению с меньшей производительностью
Duplex WCF => хуже производительность, но большей производительности

Есть некоторые большие примеры в сети для обоих scenerios, но если принять решение о решении WCF вот некоторые из ресурсов:

A very good tutorial автор Peter McGrattan.
Информация о duplex WCF from msdn.

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