Вадим П.
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
Максим Б.
2206 повідомлень
#14 років тому
А под какой версией флеш плеера проверяешь?
Вадим П.
182 повідомлення
#14 років тому
Все, разобрался глупый косяк)
rtmfp://stratus.rtmfp.net/ заменил на rtmfp://p2p.rtmfp.net/
Вадим П.
182 повідомлення
#14 років тому
Теперь новая задача.

Как выслать сообщение конкретному peerID?
Знаю есть похожий метод netGroup.sendToNeighbor(message:Object, sendMode:String), но задать можно лишь соседний узел, это, как бы, не то...

И куда вообще все флэшеры подевались)) почти не у кого даже спросить а так много вопросов по этому p2p, что даже google не на всё отвечает...
Евгений Кашкаров
450 повідомлень
#14 років тому
Тут флешеры обычно очень заняты Вы не пробовали спросить на flasher.ru?