![]() |
|
||||||||||
|
|||||
|
Здравствуйте
Быть може кто-то уже делал чат на Flash (не на Flex) с использованием Adobe Stratus У меня не срабатывает onPeerConnect, хотя и одна и другая флэшка подключаются к Стратусу Вот код package { import flash.events.*; import flash.net.*; import flash.display.*; public class stratusTest extends MovieClip { private var stratusGo:String="rtmfp://stratus.rtmfp.net/"; private var devKey:String="efb549452e48f663eedd1a3a-c09a61816fac"; private var nc:NetConnection; private var nc1:NetConnection; private var fms; private var stratus:Boolean; private var myPeerID; private var farPeerID; private var sendStream:NetStream; private var recvStream:NetStream; public function stratusTest() { addEventListener("addedToStage",initThis); } private function initThis(e:Event) { connectToStratusBTN.addEventListener("mouseDown",connectToStratusBTNPress); initSendStreamBTN.addEventListener("mouseDown",initSendStream); initReceiveStreamBTN.addEventListener("mouseDown",initRecvStream); } private function connectToStratusBTNPress(e:MouseEvent) { initStratus(); } private function initSendStream(e:MouseEvent){ trace("initSendStream"); sendStream=new NetStream(nc,NetStream.DIRECT_CONNECTIONS); sendStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); sendStream.publish("media"); var sendStreamClient:Object = new Object(); sendStreamClient.onPeerConnect = function(callerns:NetStream):Boolean{ farPeerID = callerns.farID; trace("!!! onPeerConnect "+farPeerID); INF.appendText("!!! onPeerConnect "+farPeerID+"\n"); return true; }; sendStream.client=sendStreamClient; } //private function private function initRecvStream(e:MouseEvent){ farPeerID = connectTo_peerIDText.text; recvStream=new NetStream(nc,farPeerID); recvStream.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler); recvStream.play("media"); recvStream.client=this; } private function netStatusHandler(event:NetStatusEvent):void{ trace("netStatusHandler: "+event.info.code); INF.appendText("netStatusHandler: "+event.info.code+"\n"); } private function initStratus():void { INF.appendText("connecting to Stratus...\n "); nc = new NetConnection(); nc.connect(stratusGo+devKey); farPeerID = connectTo_peerIDText.text; INF.appendText("connecting to Peer: "+farPeerID); nc.addEventListener(NetStatusEvent.NET_STATUS,stratusNCStatus); } private function stratusNCStatus( p_e:NetStatusEvent ):void { var code:String=p_e.info.code; myPeerID=nc.nearID; trace("onNCStatus "+code); trace("myPeerID "+myPeerID); INF.appendText("onNCStatus "+code+"\n"); INF.appendText("myPeerID "+myPeerID+"\n"); MY_peerIDText.text=myPeerID; if (code=="NetConnection.Connect.Success") { trace("Stratus Success"); stratus=true; INF.appendText("Stratus Success"); //nameSplash.niShower.text=nc.nearID; } else if (code == "NetConnection.Connect.Fail") { trace("Stratus: FAIL!"); INF.appendText("Stratus: FAIL!"); } else if (code == "NetStream.Connect.Success") { trace("Stratus: Success!"); INF.appendText("Stratus: Success!"); } else if (code == "NetStream.Connect.Closed") { trace("Stratus: Closed!"); INF.appendText("Stratus: Closed!"); } } } } |
|
|||||
|
Stratus Developer Key
Your Stratus developer key is: efb549452e48f663eedd1a3a-c09a61816fac To connect to the Stratus service, open an RTMFP NetConnection to: rtmfp://stratus.rtmfp.net/efb549452e48f663eedd1a3a-c09a61816fac/ Use the new end-to-end publishing and playback APIs on NetStreams associated with that NetConnection to send live video and audio directly between Flash Player clients. Additional developer documentation may be found in the Flash Player 10 API documentation for the NetConnection and NetStream ActionScript classes, the Stratus FAQ, and the Developing End-to-End Applications using Flash Player 10 and Stratus Service article in the Adobe Developer Center. Вот отсюда Пробовал изменить на rtmfp://stratus.adobe.com/ - все равно не срабатывает Последний раз редактировалось djyamato; 26.04.2010 в 20:12. |
|
|||||
|
я сначала запускаю одну флэшку, затем, когда она соединилась с сервисом Стратуса, из нее копирую полученный ID и вставляю его в connectTo_peerIDText в другой флэшке
Вот сама флэшка http://divisionby0.org/stratus_test/stratusTest.zip Кстати, тестирую в локале из-под Денвера но не думаю что это может стать причиной же. Или из-за этого ? Последний раз редактировалось djyamato; 26.04.2010 в 21:02. |
|
|||||
|
Тогда доделал на флексе
Но сейчас наткнулся на адобовском форуме на подобные темы и вот какой код оттуда на бумажечку переписал : Сам не пробовал, но утверждают что работает. |
|
|||||
|
таже история... дето прочитал, что GC жрет этот стримы. (странно ведь ссыль на него нормальная), но вобщем добавил в массив на всяк случай. - не работет
причем что широковещательная тема от NetGroup работает нормально. (но мне нужно, что бы, когда пользователи нашлись они уеденялись - а не слушали еще весь шум...) у кого получилось ? отзовитесь плиз
__________________
мира и гармонии |
|
|||||
|
http://flexconstructor.blogspot.com/...e-stratus.html
дельный урок, там описаны замечания, советую их почитать. Имхо аккурат на вашу тему. |
|
|||||
|
ага, как раз там и описано что GC съедает. скачал я его код - тож самое - нету коннекта. там кстате коммент с такой-же проблемой.
странно , может пока это прикрыли там на циррусе... http://cc.rtmfp.net/ по этому тесту меня все хорошо. тут пример (for Builder) - очень простой самый простой который я нашел на http://www.flashrealtime.com/basics-of-p2p-in-flash/ (сейчас сайт лежит) там даже видео туториал есть - все сделал по нему. сверился с разными вариациями.
__________________
мира и гармонии Последний раз редактировалось 3p.station; 02.11.2010 в 02:00. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|