Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Синхронизация Клиент(а/ов) / 25 сообщений из 45, страница 1 из 2
03.01.2011, 20:21
    #37045112
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
Всем привет.

Пришла идея создать браузерную игру после просмотра одного фильма.

Кратко об игры:
- люди заходят в комнату и ставят деньги на игроков;
- игроки становятся в круг, им раздаются патроны и пистолеты;
- по команде патроны заряжают в барабан пистолета, крутят барабан;
- потом звучит команда - "стрелять", люди стреляют;
- те кто не выбыл продолжают игру, выбывшие могут делать ставки;

так вот, как видно идея не сложна, но возникает вопрос:
как синхронизировать игроков перед и после момента "стрелять", ведь в комнату кто-то раньше зайдет кто-то позже, кто-то в одном часовом поясе сидит, кто-то в другом ?

п.с. Клиентом (мордой GUI) по сути может быть что угодно, это и сам браузер с HTML и Silverlight/Flash, проблема у всех одна, синхронизация игроков.

Взаимодействие Клиента и Сервера предполагает использование WCF WebService, т.е. никаких сокетов.

Высказывайтесь господа, нужна ваша помощь!
...
Рейтинг: 0 / 0
03.01.2011, 20:33
    #37045116
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
Синхронизировать ничего не нужно - движок должен крутиться на сервере, а там время одно.
Смотрим сюда: 9509403
...
Рейтинг: 0 / 0
03.01.2011, 21:06
    #37045141
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУ,

авторWcfTicketing\WcfTicketingService\WcfTicketingService.csproj' cannot be opened.

The project type is not supported by this installation.
что это за тип проекта ?

открываю на рабочем буке где стоит Visual Studio Web Developer 2010 Express
...
Рейтинг: 0 / 0
03.01.2011, 21:11
    #37045145
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
Microsoft Visual Studio 2010 (Ultimate)

уТКаVisual Studio Web Developer 2010 Express
Выбросьте в мусорку.
...
Рейтинг: 0 / 0
03.01.2011, 21:15
    #37045152
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУMicrosoft Visual Studio 2010 (Ultimate)

уТКаVisual Studio Web Developer 2010 Express
Выбросьте в мусорку.
мне на зарплату еле наскребают 10к рупи в месяц, а ты говоришь выброси...
...
Рейтинг: 0 / 0
03.01.2011, 21:20
    #37045154
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
уТКамне на зарплату еле наскребают 10к рупи в месяц, а ты говоришь выброси...
Варианты:
Прекращаем строить из себя девственницу и качаем с торрентов

Создать новый солюшен в Visual Studio Web Developer 2010 Express и скопипастить классы

Забить на программирование, заняться земледелием
...
Рейтинг: 0 / 0
03.01.2011, 21:30
    #37045159
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУ,

лежа на диване открывалось в Express версии.

запустил.

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

по сабжам из ссылки уже подумалось что речь пойдет о WCF Duplex, но нет, в проекте NetTCP - это пожалуй единственное чего я не глядел.

спасибо за наводку ;)
...
Рейтинг: 0 / 0
03.01.2011, 21:42
    #37045165
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
уТКаподумалось что речь пойдет о WCF Duplex, но нет, в проекте NetTCP - это пожалуй единственное чего я не глядел.
Да, дуплекс - это как альтернатива. Но, по мне красивее написать свой честный CallbackContract (ITicketCallBack в примере).
...
Рейтинг: 0 / 0
03.01.2011, 21:47
    #37045167
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУ,

блин.
чего избегали, на то и напоролись.

главная причина по которой не хотелось использовать Сокеты - это ограниченное кол-во портов на которых может работать Клиент сначала хотелось на Сильверлайт реализовать.

Так вот, посмотрел чего там предлагает WCF NET.TCP - это те же самые сокеты только через wcf-сервисы.

есть другое предложение?
...
Рейтинг: 0 / 0
03.01.2011, 22:02
    #37045174
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
NetTcpBinding

Заметкииспользуемая по умолчанию конфигурация для TCP быстрее при обмене сообщениями между конечными точками, чем конфигурация по умолчанию для привязок HTTP

<netTcpBinding>

maxConnectionsЦелое число, указывающее максимальное число входящих и исходящих подключений, которые будут созданы/приняты службой. Входящие и исходящие подключения считаются относительно отдельного предела, определенного этим атрибутом.
Входящие соединения сверх указанного предела помещаются в очередь и обрабатываются по мере освобождения ресурсов .
Исходящие соединения сверх указанного предела помещаются в очередь и обрабатываются по мере освобождения ресурсов .
Значение по умолчанию — 10.


listenBacklogПоложительное целое число, указывающее максимальное число каналов, ожидающих принятия прослушивателем. Соединения сверх этого лимита помещаются в очередь и обрабатываются по мере освобождения ресурсов. Атрибут connectionTimeout ограничивает время, в течение которого клиент ожидает установления соединения до создания исключения подключения. Значение по умолчанию — 10.

Так же читать про буферные пулы.

P.S. Какие к чёрту сокеты? Какое ограниченное кол-во портов?
...
Рейтинг: 0 / 0
03.01.2011, 22:05
    #37045178
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
Там всё красиво и умное реализовано через пулы и очереди. Программисту не нужно понимать эту рутинную и сложную систему работы NetTcpBinding. Просто берём, конфигурим и работаем. А оно само там пулится и распихивается по очередям.
...
Рейтинг: 0 / 0
03.01.2011, 22:15
    #37045182
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУ,

то что можно конфигурировать пул - это хорошо.

я про другое - сам Сильвер ограничен по портам, через которые можно производить коммуникации.
...
Рейтинг: 0 / 0
03.01.2011, 23:13
    #37045236
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
уТКасам Сильвер ограничен по портам, через которые можно производить коммуникации.
Ссылка на документацию будет?
...
Рейтинг: 0 / 0
04.01.2011, 00:27
    #37045290
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУ,

да вот
выдержкаOne additional restriction on using the sockets classes is that the destination port range that a network application is allowed to connect to must be within the range of 4502-4534. These are the only destination ports allowed by a connection from a Silverlight application using sockets. If the target port is not within this port range, the attempt to connect will fail. It is possible for a target server to receive connections on a port from this restricted range and redirect it to a different port (a well-known port, for example) if this is needed to support a specific existing application protocol.
...
Рейтинг: 0 / 0
04.01.2011, 01:01
    #37045311
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
уТКа, ок спасибо. Ну так а какие могут быть проблемы использования клиентами одного порта из указанного перечня? Все будут ломиться по одному порту, всё чинно и благородно.
...
Рейтинг: 0 / 0
04.01.2011, 01:10
    #37045315
Верблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУуТКа, ок спасибо. Ну так а какие могут быть проблемы использования клиентами одного порта из указанного перечня? Все будут ломиться по одному порту, всё чинно и благородно.

За одним маленьким "но" - в 90% случаев огнестенки просто пошлют все эти SL в далекое пешее путешествие.
...
Рейтинг: 0 / 0
04.01.2011, 01:11
    #37045316
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУ,

ну если пул не будет захлебываться и заботиться о нем действительно не нужно, то дай бог, земледелие отложу до худших времен :)
...
Рейтинг: 0 / 0
04.01.2011, 01:27
    #37045324
Верблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
В 4-м SL есть сокеты без ограничения на номера портов

http://msdn.microsoft.com/ru-ru/library/system.net.sockets(v=vs.95).aspx

Плюс, поддержка многоадресной рассылки UDP.
...
Рейтинг: 0 / 0
04.01.2011, 01:34
    #37045336
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
Верблюд,

ну ну, для тех кто по англицки не понимает, выдержка отсюда :
выдержкаОдно дополнительное ограничение использования классов сокетов заключается в том, что диапазон целевого порта, к которому разрешено подключение сетевого приложения, должен находиться в пределах диапазона 4502-4534. Это единственные целевые порты, разрешенные подключением из приложения Silverlight с помощью сокетов. Если целевой порт не обнаружен в этом диапазоне портов, попытка подключения завершится неудачей. Целевой сервер может получать соединения по порту из этого ограниченного диапазона и перенаправлять их на другой порт (известный порт, например), если это необходимо для поддержки конкретного протокола существующего приложения.
...
Рейтинг: 0 / 0
04.01.2011, 01:38
    #37045338
Верблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
уТКа,

специально для тех, кто за буквами не видит текста. Ссылка та же.


авторВ Silverlight версия 4 доверенным приложениям также предоставлено разрешение на использование сетевых классов в пространстве имен System.Net.Sockets, включая новые классы UdpAnySourceMulticastClient и UdpSingleSourceMulticastClient без проверки политики. Доверенное приложение способно создавать TCP-подключение к любому порту любого узла, при этом файл политики междоменной связи не требуется. Целевой порт больше не должен находиться в диапазоне 4502-4534. Аналогичным образом доверенное приложение, использующее классы UdpAnySourceMulticastClient и UdpSingleSourceMulticastClient, может присоединиться к любой группе многоадресной рассылки через любой порт больший или равный 1024, при этом нет необходимости, чтобы ответчик авторизовал подключение. Чтобы воспользоваться преимуществами этих изменений не требуются дополнительные вызовы методов. Существующие методы не требуют проверок политики при запуске приложения вне браузера с повышенным уровнем доверия как доверенного приложения.
...
Рейтинг: 0 / 0
04.01.2011, 02:19
    #37045355
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
Верблюд,

подними глаза выше и читай внимательно:
MSDNВ Silverlight версия 4 доверенным приложениям также предоставлено разрешение на использование сетевых классов...
где гарантия что пользователь захочет ставить/инсталлировать приложение?!

вот нашел пример со статьей по использованию Silverlight 4 + WCF NET.TCP
правда пришлось немного постараться чтобы заработало, но работает.
Модератор: уТКа и Верблюд, спокойнее!
...
Рейтинг: 0 / 0
04.01.2011, 02:54
    #37045361
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
уТКа
MSDNВ Silverlight версия 4 доверенным приложениям также предоставлено разрешение на использование сетевых классов...
где гарантия что пользователь захочет ставить/инсталлировать приложение?!

Как это коррелирует с тем, что целевой порт (в SL4) обязан находиться в диапазоне 4502-4534?


уТКа вот нашел пример со статьей по использованию Silverlight 4 + WCF NET.TCP
правда пришлось немного постараться чтобы заработало, но работает.
Чем этот пример лучше приведенного мною на чистых TCP коллбеках? Более того, я изначально писал и о дуплексе как варианте.
...
Рейтинг: 0 / 0
04.01.2011, 03:01
    #37045363
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
МСУ,

О мой бог...

авторКак это коррелирует с тем, что целевой порт (в SL4) обязан находиться в диапазоне 4502-4534?
Доверенным (читать как Установленным) снимаются ограничения, тем что вы запускаете из браузера без предварительной установки доступ к сокетам есть, но с ограничениями по целевому порту.

авторЧем этот пример лучше приведенного мною на чистых TCP коллбеках? Более того, я изначально писал и о дуплексе как варианте.
Фишка в том что это так называемый "Self hosted" сервер в виде веб-приложения, откомпилили, закинули на хостинг и все, запускать ничего не нужно, просто работать как с wcf-сервисом.
...
Рейтинг: 0 / 0
04.01.2011, 03:12
    #37045368
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
уТКаДоверенным (читать как Установленным) снимаются ограничения, тем что вы запускаете из браузера без предварительной установки доступ к сокетам есть, но с ограничениями по целевому порту.
Рузультат Application.Current.Install() будет являться гарантией? Жёсткий инсталл-таки, не дадим дальнейшего использования, пока результат не будет равен true.

уТКаФишка в том что это так называемый "Self hosted" сервер в виде веб-приложения, откомпилили, закинули на хостинг и все, запускать ничего не нужно, просто работать как с wcf-сервисом.
Хостить WCF можно как угодно, речь не об этом.
...
Рейтинг: 0 / 0
04.01.2011, 03:13
    #37045369
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация Клиент(а/ов)
уТКа,

сегодня WAS для себя открыл?
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Синхронизация Клиент(а/ов) / 25 сообщений из 45, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]