Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Репликация объектов р2р, без участия Stratus (http://www.flasher.ru/forum/showthread.php?t=159854)

ninjatune 06.07.2011 05:19

Репликация объектов р2р, без участия Stratus
 
Здравствуйте.
Имеется групповой р2р чат, для которого имеется р2р облако (и объект NetGroup).
Нужно в этом чате сделать возможность для каждого участника показать другим картинку (аватар), и сменить ее в любой момент этого чата - т.е. например юзер ткнул "сменить аватар" - выбрал новую картинку - эта картинка отправилась flash-клиентам остальных участников чата и отобразилась у них.
Пробовали взять стандартное решение отсюда:
http://www.flashrealtime.com/file-sh...ion-flash-p2p/
но по результатам тестов получается нехилая задержка от этой репликации (иногда до 5 с) - при попытке send/receive объекта с клиента код этой репликации каждый раз обращается к Stratus, якобы для маршрутизации - хотя маршруты до участников чата известны заранее (и заранее инициализированы в NetGroup, контроль онлайн-участников также реализован отдельно, проверять каждый раз при репликации маршрутизацию до участников - не нужно). Это больше похоже на то, что репликация каждый раз просит разрешения у стратуса :)
Нужно - сделать репликацию картинки без участия стратуса, используя только заранее инициализрованный NetGroup , с минимальной задержкой загрузки картинки.
1. Подойдет ли для этого например такой способ - берем чат отсюда:
http://www.flashrealtime.com/simple-...etgroup-rtmfp/ , сообщения в нем передаются вроде бы без запроса к страусу каждый раз, вместо сообщений передаем картинку в упакованном виде (base64 etc) и затем у каждого клиента отображаем распакованную из мессаги полученную картинку. Или даже можно не упаковывать в base64?
2. Если кто-то сталкивался с похожей задачей (обмен объектами весом до 1 мб внутри р2р облака, без использования внешнего сервера) - подскажите плз, какие еще есть варианты решения.

KODERart 06.07.2011 07:27

А чем вы смотрите что флешка каждый раз к стратусу обращается?

Попробуйте поиграться с параметрами: ipMulticastMemberUpdatesEnabled, objectReplicationEnabled, peerToPeerDisabled, routingEnabled, serverChannelEnabled - в классе GroupSpecifier.

Вот вроде пример чата:
http://www.flashrealtime.com/simple-...etgroup-rtmfp/

В NetStream можно отправлять файлы без всяких base64. Я из FileReference отправлял.

ninjatune 07.07.2011 03:30

Цитата:

Сообщение от KODERart (Сообщение 1009105)
А чем вы смотрите что флешка каждый раз к стратусу обращается?

Сравнивая работу вышеуказанных готовых скриптов чата и репликации, получаем такие результаты:
чат - передача сообщения всем участвующим в нем происходит в рамках 1 сек, даже большого сообщения весом до 0.5 Мб
репликация - загрузка картинки весом 0.5 Мб может занимать до 5-7 сек, а в следующих попытках 1-3 сек, при этом уже есть инициализированный NetGroup, ничего переинициализровать по части р2р облака не нужно.
Больше всего такое поведение репликации похоже на то, что она каждый раз запрашивает у страуса инфу о пирах в группе. Можно еще посмотреть флешку сниффером при использовании этой репликации - пока руки не дошли.
Такое поведение очень странно для тулзы, которая по идее не должна вообще заботиться о сети, принимающих пирах итд (уже есть NetGroup) - а должна просто посылать копию объекта через NetGroup, вместо этого имеем задержки до 5-7 сек - кому нужна "репликация" с такой скоростью не совсем понятно :)


Часовой пояс GMT +4, время: 04:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.