Мы работаем с сервером Cumulus, чтобы сделать живой голос и текстовый чат.NetStream.send не работает с NetGroup в RTMFP
Настройка такова, что каждый клиент может отправлять данные друг другу в одной и той же NetGroup через group.post(). К сожалению, эта функция чрезвычайно медленная (по крайней мере, половина с половиной задержки), поэтому мы переключились на использование NetStream.send для вызова функций на других клиентах, передавая данные через это. Это работает почти мгновенно.
Однако мы сейчас пытаемся создать отдельные чаты с использованием разных NetGroups. Но при этом NetStream.send() больше не работает, функции никогда не вызываются на других клиентах, и никакие голосовые данные не передаются. В принципе, публикация NetStream, похоже, больше не работает.
Мы имеем следующие установки, чтобы установить Netgroup и публикации потока на каждом клиенте:
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");
И следующий код используется для прослушивания «медиа» поток:
case "NetGroup.Neighbor.Connect":
var netStream :NetStream = new NetStream(_netConnection, p_netStatusEvent.info.peerID);
netStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus);
netStream.client = this;
netStream.play("media");
break;
Само соединение NetGroup работает, и «NetGroup.Neighbor.Connect» вызывается каждому клиенту при подключении соседа. Но сам _sendStream просто не работает. Данные не получены, функция не вызвана.
Это делает работу, когда издательство NetStream строится следующим образом:
_sendStream = new NetStream(_netConnection, NetStream.DIRECT_CONNECTIONS);
Однако, нам понадобится только NetStream для отправки одного NetGroup, и в соответствии с Adobe Documentation, используя gspec.groupspecWithAuthorizations() в конструкторе должен допускать именно это.
Мы что-то упустили?