Adobe Cirrus를 사용하여 NetGroup을 설정했습니다. 새 스트림이 게시 될 때마다 NetGroup.Neighbor.Connect
및 NetGroup.MulticastStream.PublishNotify
이벤트를 수신하므로 모든 클라이언트가 잘 연결되어 서로를 볼 수 있습니다.Adobe Cirrus를 사용하는 onPeerConnect 메서드가 트리거되지 않습니다.
그러나 사용자가 게시 된 스트림에 가입하면 게시자는 알림을받지 못합니다 (NetStatusEvent가없고 onPeerConnect 메서드에 대한 콜백 없음). 가입자는 문제없이 스트림을 수신합니다.
작동하지 않는 onPeerConnect 메서드에 대한 다른 모든 질문은 NetStream.DIRECT_CONNECTIONS와 관련이 있지만 제 경우에는 NetGroup을 사용하고 있습니다.
무엇이 잘못 되었나요? 하지 넷 그룹에 대한 DIRECT_CONNECTIONS를 사용하는 경우
// 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;
}
}