Я использую Adobe Stratus (теперь переименованный в Cirrus) для создания p2p-приложения.Внутри приложения я использовал функцию обратного вызова NetStream.onPeerConnect и ожидал, что она будет срабатывать каждый раз, когда подключен узел.Тем не менее, это всегда не удавалось с моим другом A, в то время как странному другу B удалось вызвать функцию без каких-либо проблем.
Мне было интересно, что может быть причиной этой проблемы?
Вот какфрагменты кода выглядят следующим образом.
Во-первых, создайте NetConnection .
netConnection = new NetConnection();
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnectionHandler);
netConnection.connect(SERVER_ADDRESS+DEVELOPER_KEY);
Во-вторых, создайте NetStream после успешного подключения NetConnection.
private function netConnectionHandler(event:NetStatusEvent):void{
switch (event.info.code){
case "NetConnection.Connect.Success":
sendStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
sendStream.addEventListener(NetStatusEvent.NET_STATUS, netStreamHandler);
var sendObj:Object = new Object();
sendObj.onPeerConnect = function(subscriber:NetStream) : Boolean {
trace("[onPeerConnect] far id: " + subscriber.farID);
return true;
}
sendStream.client = sendObj;
sendStream.publish("file");
......
В-третьих, вот как я строю связь между двумя пирами
receivedStream = new NetStream(netConnection, farId);
receivedStream.client = this;
receivedStream.addEventListener(NetStatusEvent.NET_STATUS, incomingStreamHandler);
receivedStream.play("file");
Пожалуйста, помогите просветить меня.Спасибо!