Cirrus (Flash, AS3)
182 повідомлення
#14 років тому
Написал небольшой класс для p2p-постинга группе, но почему то не срабатывает событие NetGroup.Posting.Notify. Кто подскажет, почему? Вроде ж все верно, несколько раз пересматривал. Вот класс:import flash.net.NetConnection;
import flash.net.GroupSpecifier;
import flash.net.NetGroup;
import flash.events.NetStatusEvent;
public class Cirrus extends NetConnection {
private var SERVER:String = 'rtmfp://stratus.rtmfp.net/';
private var DEVKEY:String = '4bf8779842494f8b4e4f6d37-400f222de180'
private var groupspec:GroupSpecifier;
private var netGroup:NetGroup;
public function Cirrus () {
super();
this.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
this.connect(SERVER+DEVKEY);
}
private function netStatus(event:NetStatusEvent):void{
trace (event.info.code);
switch (event.info.code) {
case 'NetConnection.Connect.Success':
initNetGroup();
break;
case 'NetGroup.Connect.Success':
this.dispatchEvent(new AppEvent(AppEvent.P2P_INIT, {}));
sendPost({message: 'test'});
break;
case 'NetGroup.Neighbor.Connect':
connectUser(event.info);
break;
case 'NetGroup.Neighbor.Disconnect':
disconnectUser(event.info);
break;
case 'NetStream.Connect.Rejected':
this.dispatchEvent(new AppEvent(AppEvent.ERROR_CONNECTION, {code: event.info.code}));
break;
case 'NetGroup.Posting.Notify':
trace (event.info.message);
break;
}
}
private function initNetGroup() {
groupspec = new GroupSpecifier("test");
groupspec.serverChannelEnabled = true;
groupspec.postingEnabled = true;
netGroup = new NetGroup(this, groupspec.groupspecWithAuthorizations());
netGroup.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
}
private function connectUser(obj:Object) {
this.dispatchEvent(new AppEvent(AppEvent.P2P_CONNECT_USER, {peerID: obj.peerID}));
}
private function disconnectUser(obj:Object) {
this.dispatchEvent(new AppEvent(AppEvent.P2P_DISCONNECT_USER, {peerID: obj.peerID}));
}
public function sendPost(obj:Object) {
netGroup.post(obj);
}
}
Цитата:
/* trace */
NetConnection.Connect.Success
NetGroup.Connect.Success
182 повідомлення
#14 років тому
Все, разобрался 
rtmfp://stratus.rtmfp.net/ заменил на rtmfp://p2p.rtmfp.net/
182 повідомлення
#14 років тому
Теперь новая задача.Как выслать сообщение конкретному peerID?
Знаю есть похожий метод netGroup.sendToNeighbor(message:Object, sendMode:String), но задать можно лишь соседний узел, это, как бы, не то...
И куда вообще все флэшеры подевались)) почти не у кого даже спросить
