2011-08-18 44 views
0

我有一個使用Adobe Cirrus建立的NetGroup。所有客戶端都可以正常連接並互相看到對方,因爲我在發佈新流時收到NetGroup.Neighbor.ConnectNetGroup.MulticastStream.PublishNotify事件。使用Adobe Cirrus的onPeerConnect方法不會觸發

但是,如果用戶訂閱發佈的流,發佈者不會收到通知(沒有NetStatusEvent,也沒有對onPeerConnect方法進行回調)。儘管如此,用戶收到的流沒有問題。

關於非工作onPeerConnect方法的所有其他問題都與NetStream.DIRECT_CONNECTIONS有關,但在我的情況下,我使用的是NetGroup。

這裏有什麼問題?

// Only the relevant parts, a few things have been stripped (e.g. connect the netGroup only when the NetConnection has been established etc.) 
var groupSpecifier:GroupSpecifier = new GroupSpecifier("group"); 
groupSpecifier.multicastEnabled = true; 
groupSpecifier.postingEnabled = true; 
groupSpecifier.serverChannelEnabled = true; 
groupSpecifier.objectReplicationEnabled = true; 
groupSpecifier.ipMulticastMemberUpdatesEnabled = true; 
groupSpecifier.routingEnabled = true; 

var netGroup:NetGroup = new NetGroup(netConnection, groupSpecifier.groupspecWithAuthorizations()); 

var netStream:NetStream = new NetStream(netConnection, groupSpecifier.groupspecWithAuthorizations()); 
netStream.client = {onPeerConnect:onPeerConnect}; 
netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus); 

// Never gets called 
public function onPeerConnect(netStream:NetStream):Boolean { 
    trace("onPeerConnect: "+netStream.farID); 

    return true; 
} 

private function onNetStatus(event:NetStatusEvent):void { 
    trace(event.info.code); 

    switch(event.info.code) { 
     case EventCodes.STREAM_CONNECT_SUCCESS : 
      netStream.attachCamera(camera); 
      netStream.attachAudio(microphone); 
      netStream.publish(streamName); 
      break; 
    } 
} 

回答

3

onPeerConnect僅在使用DIRECT_CONNECTIONS時才被調用,不適用於NetGroups。不幸的是,這在文檔或其他地方沒有提到。

相關問題