Я использую Adobe Stratus (теперь переименованный в Cirrus) для создания приложения p2p. Внутри приложения я использовал функцию обратного вызова NetStream.onPeerConnect и ожидал, что он будет запускаться каждый раз, когда подключен одноранговый узел. Тем не менее, он всегда терпел неудачу с моим другом А, а странному другу Б. удалось вызвать функцию без каких-либо проблем.Что препятствует запуску NetStream.onPeerConnect?
Мне было интересно, что может быть причиной этой проблемы?
Вот как выглядят фрагменты кода.
Прежде всего, создайте 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");
Пожалуйста, помогите просветить меня. Благодаря!