NetStream, как установить максимальное количество пиров, которые можно подключить к издателю?

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

Я попробовал это:

stream.client.onPeerConnect = function( s:NetStream ):Boolean
{
 return stream.peerStreams.length + 1 <= 4;
}

Он не передает данные, но сообщает "NetStream.Connect.Success" подписчику (ожидая "NetStream.Connect.Failed" или "NetStream.Connect.Closed").

Также попробовал это: (в NetStatusEvent.NET_STATUS слушатель класса NetConnection)

switch(evt.info.code)
{
 case 'NetStream.Connect,Success':
  if(stream.peerStreams.length > 4)
  {
   evt.info.stream.close(); break;
  }
  // setup a new stream for receive data from evt.info.stream.farID (or Peer ID) //
  ................

Он закрывает это соединение, но до того, как это произойдет, издатель может отправить некоторые данные (аудио, видео, пользователя), которые мне не нравятся.

Есть идеи?

1 ответ

Решение

NetConnection класс имеет свойство под названием maxPeerConnections который вы должны быть в состоянии установить на 4 (по умолчанию 8). Это сделает так, чтобы 5-е входящее соединение даже не получало NetStream.Connect.Success это то, что я считаю, что вы хотите

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetConnection.html

Другие вопросы по тегам