Actionscript 3 退出网络组成员会导致Flash插件崩溃

Actionscript 3 退出网络组成员会导致Flash插件崩溃,actionscript-3,flash,netstream,flash-media-server,rtmfp,Actionscript 3,Flash,Netstream,Flash Media Server,Rtmfp,我们正在创建一个语音聊天与RTMFP使用服务器。 用户通过加入同一网络组相互连接 订阅的NetStreams上的语音聊天和呼叫功能运行良好 但是,有时,当用户关闭浏览器窗口时,同一网络组中所有用户的Flash插件都会崩溃 由于没有报告错误,而且从我的IDE(FlashDevelop)启动Flash应用程序时似乎没有发生崩溃,所以我不知道发生了什么。我所知道的是,当用户退出Flash应用程序(关闭浏览器窗口/应用程序)时,有时会发生这种情况 这是建立到网络组的连接和发布音频发布流的方式(在建立到C

我们正在创建一个语音聊天与RTMFP使用服务器。 用户通过加入同一网络组相互连接

订阅的NetStreams上的语音聊天和呼叫功能运行良好

但是,有时,当用户关闭浏览器窗口时,同一网络组中所有用户的Flash插件都会崩溃

由于没有报告错误,而且从我的IDE(FlashDevelop)启动Flash应用程序时似乎没有发生崩溃,所以我不知道发生了什么。我所知道的是,当用户退出Flash应用程序(关闭浏览器窗口/应用程序)时,有时会发生这种情况

这是建立到网络组的连接和发布音频发布流的方式(在建立到Cumulus服务器的连接后):

这是如何创建侦听发布NetStream的接收NetStream(每当邻居连接时):


这是什么原因造成的?当通知邻居断开连接时,我应该做些特别的事情吗?请注意,我甚至不知道崩溃是发生在任何类型的通知之前还是之后…

您可以通过找到更多信息。将Visual Studio附加到process
plugin container.exe
,也许您可以在此处发布更多信息(使用)

第二件事-如果您当前使用的是调试器版本,请尝试Flash Player插件发布版本,但调试器版本在Firefox中更可能崩溃。然而,你可以通过以下方式避免它

关于Firefox插件中对断开连接的网络组对等点的特殊处理-我认为你不需要做更多。。。如果应用程序在ActiveX插件和Flash Player独立投影仪中工作,但仅在Firefox插件的调试器版本中崩溃。。。简而言之:只关注Flash Player发布版本的崩溃


还有一件事我肯定会尝试-使用原始的AdobeCirus或Flash Media ServerEnterprise 4.5,而不是开源版本,直到找到错误为止。即使协议中的微小更改也可能导致连接崩溃,从而导致插件崩溃。

当你说崩溃时,你是指整个插件吗?不仅仅是应用程序?我是说这个:如果你重新加载页面,它会再次工作。
_gspecMain = new GroupSpecifier("MainGroup");
_gspecMain.multicastEnabled = true;
_gspecMain.postingEnabled = true;
_gspecMain.serverChannelEnabled = true;
_gspecMain.objectReplicationEnabled = false;
_group = new NetGroup(_netConnection, _gspecMain.groupspecWithAuthorizations());
_group.addEventListener(NetStatusEvent.NET_STATUS, handleNetGroupStatus);

// Audio
_sendStream = new NetStream(_netConnection, NetStream.DIRECT_CONNECTIONS); 
_sendStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus);
_sendStream.client = this;
_sendStream.attachAudio(_mic); 
_sendStream.publish("media");
var netStream :NetStream = new NetStream(_netConnection, p_netStatusEvent.info.peerID);
netStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus); 
netStream.client = this;
netStream.play("media");