Actionscript 3 NetStream.send无法在RTMFP中与网络组一起工作

Actionscript 3 NetStream.send无法在RTMFP中与网络组一起工作,actionscript-3,flash,stream,netstream,rtmfp,Actionscript 3,Flash,Stream,Netstream,Rtmfp,我们正在运行一个服务器来进行实时语音和文本聊天 设置是,每个客户端都可以通过group.post()将数据发布到同一网络组中的其他客户端。不幸的是,该函数非常慢(至少有半秒的延迟),因此我们切换到使用NetStream.send在其他客户端上调用函数,通过它传递数据。这几乎可以立即起作用 然而,我们现在正试图建立单独的聊天室,使用不同的网络组。但是当这样做时,NetStream.send()不再工作,这些函数永远不会在其他客户端上调用,也不会传输语音数据。基本上,整个发布NetStream似乎不

我们正在运行一个服务器来进行实时语音和文本聊天

设置是,每个客户端都可以通过group.post()将数据发布到同一网络组中的其他客户端。不幸的是,该函数非常慢(至少有半秒的延迟),因此我们切换到使用NetStream.send在其他客户端上调用函数,通过它传递数据。这几乎可以立即起作用

然而,我们现在正试图建立单独的聊天室,使用不同的网络组。但是当这样做时,NetStream.send()不再工作,这些函数永远不会在其他客户端上调用,也不会传输语音数据。基本上,整个发布NetStream似乎不再工作了

我们通过以下设置在每个客户端上建立网络组和发布流:

var gspec:GroupSpecifier = new GroupSpecifier("Group1");
gspec.multicastEnabled = true;
gspec.postingEnabled = true;
gspec.serverChannelEnabled = true;
gspec.objectReplicationEnabled = true;
gspec.routingEnabled = true;

_group = new NetGroup(_netConnection, gspec.groupspecWithAuthorizations());
_group.addEventListener(NetStatusEvent.NET_STATUS, handleNetGroupStatus);

_sendStream = new NetStream(_netConnection, gspec.groupspecWithAuthorizations()); 
_sendStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus);
_sendStream.client = this;
_sendStream.attachAudio(_mic); 
_sendStream.publish("media");
以下代码用于侦听“媒体”流:

网络组连接本身起作用,当邻居连接时,会在每个客户端上调用“NetGroup.Neighbor.Connect”。但是\u sendStream本身根本不起作用。未接收数据,未调用函数

当发布NetStream以以下方式构造时,它确实起作用:

_sendStream = new NetStream(_netConnection, NetStream.DIRECT_CONNECTIONS); 
但是,我们只希望NetStream发送到单个网络组,根据,在构造函数中使用gspec.groupspecWithAuthorizations()应该允许这样做

我们在这里遗漏了什么吗?

我找到了答案:

您还必须使接收的NetStream侦听gspec.groupspecWithAuthorizations(),而不是p\u netStatusEvent.info.peerID

这确实有效。不幸的是,这使得语音聊天变得不可能,因为它的速度非常慢(与NetGroup.post()一样慢),并且引入了许多声音瑕疵

所以,我们必须为不同的聊天室找到另一种解决方案

_sendStream = new NetStream(_netConnection, NetStream.DIRECT_CONNECTIONS);