apache-flex - Flex,如何从连接到我的流的远程用户获取对等 ID?

标签 apache-flex video stream chat p2p

我正在创建一个 p2p Cirrus 视频聊天。 我当前的问题是如何自动连接到连接到我的流的订阅者。经过一番谷歌搜索后,我发现我可以使用下一个构造来完成:

var clientObject:Object = new Object();
                    clientObject.onPeerConnect = function(callerns:NetStream):Boolean{              

                        return true;
                    }

我的流:

发送流:

private function initSendNetStream():void{
                trace("initSendStream");

                sendStream = new NetStream(nc,NetStream.DIRECT_CONNECTIONS);
                sendStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusEvent);
                var clientObject:Object = new Object();
                clientObject.onPeerConnect = function(callerns:NetStream):Boolean{              

                    return true;
                }

                sendStream.client = clientObject;
                sendStream.attachCamera(cam);
                sendStream.attachAudio(mic);
                sendStream.publish('video');
                log('Net Stream publish start');
            }

和接收流:

private function addContact(peerID:String):void {


            var nc2:NetConnection = new NetConnection();
            nc2.addEventListener(NetStatusEvent.NET_STATUS, function (event:NetStatusEvent):void {
                trace('NetConnection status event (2): ' + event.info.code);
                var receiveNS:NetStream = new NetStream(nc2, /*ContactPeerID.text*/ peerID);
                receiveNS.addEventListener(NetStatusEvent.NET_STATUS, netStatusEvent);
                receiveNS.play('video');

                var video:Video = new Video();
                video.attachNetStream(receiveNS);

                var uic:UIComponent = new UIComponent();
                uic.width = 320;
                uic.height = 240;
                uic.addChild(video);
                uic.toolTip = txtData.selectedItem.name;
                VideoStack.addChild(uic);

                //Clean ContactPeerID form
                ContactPeerID.text = '';
            });
            nc2.connect(SERVER_ADDRESS+DEVELOPER_KEY);              
        }           

我的想法是在这个结构中添加联系人功能:

 var clientObject:Object = new Object();
                        clientObject.onPeerConnect = function(callerns:NetStream):Boolean{              

                            return true;
                        } 

但是,为了做到这一点,我应该检测并接收订阅者的 ID 以将其放入函数中。 我的第二个问题 - 如何做到这一点?我正在尝试使用远程共享对象来解决这个问题,但我不知道这个结构在我的情况下应该是什么样子。

希望有人能帮我解决这个问题。先感谢您!

最佳答案

我不确定您要实现什么 p2p 连接架构。 但只是为了找出已连接对等点的 ID,您可以尝试这样做:

callerns.farID

在 onPeerConnect 函数中。

关于apache-flex - Flex,如何从连接到我的流的远程用户获取对等 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9370805/

相关文章:

apache-flex - Facebook 可以在 Adob​​e Flex 中实现吗?

ios - 过滤 child YouTube视频API

java - 从输入流读取 Lines 和 byte[]

apache-flex - Flex 自动化验收测试工具

使用 Flex 时,SQL Server 需要很长时间才能将数据返回到 ColdFusion

html - 将文本或 Logo 定位在鼠标悬停时消失的 div 上

C# - 流读取器问题

java - 如何获取流到通过 H2DB 创建的 "in-memory"数据库?

apache-flex - 带有自签名证书的 SSL 上的 Flex 4.5 RemoteObject 和 AMFPHP

c++ - 在 DirectShow 过滤图中使用 Async_reader 和 Wave Parser 会导致视频搜索问题