Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   RTMFP Многие ко многим (http://www.flasher.ru/forum/showthread.php?t=209773)

garymar 19.12.2014 04:25

RTMFP Многие ко многим
 
Уважаемые знатоки p2p/Обращаюсь к вам за консультацией и помощью в реализации не простого "один к одному" вещания, а "многие ко многим".

Создаю NetConnection
Код AS3:

nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, onStatusEvent);

Ловлю NetConnection.Connect.Success и создаю стрим для публикации данных с nc.nearID

Код AS3:

private function onStatusEvent(e:NetStatusEvent):void
                {
                        switch (e.info.code)
                        {
                                case "NetConnection.Connect.Success":
 
                                        sendStream = new NetStream(nc, NetStream.DIRECT_CONNECTIONS);
                                        sendStream.addEventListener(NetStatusEvent.NET_STATUS, onStatusEvent);
                                        sendStream.client = {onPeerConnect:onPeerConnect};
                                        sendStream.publish(nc.nearID);
 
                                        break;
 
                                default:
                                        break;
                        }
                }
 
public function onPeerConnect(callerns:NetStream) : Boolean
        {
            return true;
        }

Выше всё стандартно и понятно.

Далее при передаче коллекции nearID из других экземпляров FlashPlayer я начинаю слушать их, создавая стрим проигрывания по айдишнику каждого как farID.
Код AS3:

public function receiving(farIDList:Array):void
                {
                        for (var i:int = 0; i < farIDList.length; i++)
                        {
                                ListenerFars(farIDList[i]);
                        }
                }
 
private function ListenerFars(farID:String):void
                {
                        recvStream = new NetStream(nc, farID);
                        recvStream.addEventListener(NetStatusEvent.NET_STATUS, onStatusEvent);
                        recvStream.play(farID);
                        recvStream.client = {msg:onMessageReceived};
                }
 
private function onMessageReceived(msg:*):void
                {
                        Log(msg);
                }

Проблема заключается в том, что при более 2-х экземпрярах FlashPalyer клиентов каким-то магическим методом у некоторых срабатывает "безпричинно" NetStream.Connect.Closed через 3-5-8 секунд приблизительно (т.е. многие ко многим работает, только определенный промежуток времени, потом обрывается какой-то клиент). Нету закономерности.
Когда 2 клиента паблишат и слушают друг друга, то никакого обрыва нету.

Как уйти от таких обрывов?

undefined 19.12.2014 20:02

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

garymar 19.12.2014 23:13

Нет,NetGroup не катит. Мне нужно именно без NetGroup обойтись, мне важно чтобы не показывалось окно p2p сети


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

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