我们正在使用Cumulus服务器创建与 RTMFP 的语音聊天。用户通过加入同一个网络组相互连接。
订阅的 NetStreams 上的语音聊天和呼叫功能运行良好。
但是,有时,当用户关闭浏览器窗口时,同一个 NetGroup 中所有用户的 Flash 插件都会崩溃。
由于没有报告错误,并且从我的 IDE (FlashDevelop) 启动 Flash 应用程序时似乎没有发生崩溃,所以我不知道发生了什么。我所知道的是,有时当用户退出 Flash 应用程序(关闭浏览器窗口/应用程序)时会发生这种情况。
这是建立与 NetGroup 的连接和发布音频发布流的方式(在建立与 Cumulus 服务器的连接之后):
_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");
这就是创建接收 NetStream 监听发布的方式(每当 Neighbor 连接时):
var netStream :NetStream = new NetStream(_netConnection, p_netStatusEvent.info.peerID);
netStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus);
netStream.client = this;
netStream.play("media");
什么可能导致这种情况?当通知邻居断开连接时,我是否应该做一些特别的事情?请注意,我什至不知道崩溃是在任何通知之前还是之后发生的......