|
|
|||||
Регистрация: Jan 2011
Сообщений: 46
|
p2p чат
Привет.
Делаю чат на технологии p2p. Все почти готово, пользователи могут переписыватся. Поставил себе задучу, оповещать о входе нового пользователя... и застряг на этоп этапе. Делаю так: public function inti(event:Event):void { netConnection = new NetConnection(); netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); netConnection.connect(SERVER + DEVKEY); } public function setupGroup():void { groupspec = new GroupSpecifier(GROUP); groupspec.serverChannelEnabled = true; groupspec.multicastEnabled = true; groupspec.postingEnabled = true; groupspec.routingEnabled = true; groupspec.peerToPeerDisabled = false; netStream = new NetStream(netConnection, groupspec.groupspecWithAuthorizations()); netStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); } public function netStatusHandler(e:NetStatusEvent):void { switch (e.info.code) { case 'NetConnection.Connect.Success': setupGroup(); break; case 'NetStream.Connect.Success': // Create new NetGroup netGroup = new NetGroup(netConnection, groupspec.groupspecWithAuthorizations()); netGroup.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); break; case 'NetGroup.Connect.Success': sendMessage(this.userName + " вошел в чат"); break; case 'NetGroup.Posting.Notify' : onReceiveMessage(e.info.message);//объект, который мы получили от члена группы. break; default: break; } } public function sendMessage(text:String = ""):void { var mes:Object = new Object() mes.user = this.userName; mes.text = text; mes.sequnce = this._sequence++; mes.sender = netConnection.nearID; netGroup.post(mes); } Добавлено через 5 часов 17 минут ничто не знает? Добавлено через 10 часов 19 минут подскажите пожалуйста... |
|
|||||
Регистрация: Feb 2009
Сообщений: 180
|
Вы для начала просто трейсить этот ивент пробовали? Он вообще срабатывает?
Добавьте также следущее в ивент: case 'NetGroup.Connect.Rejected': case 'NetGroup.Connect.Failed': trace('epic fail'); break; Последний раз редактировалось Acrossfy; 07.05.2012 в 18:18. Причина: Исправил теги |
|
|||||
Регистрация: Jan 2011
Сообщений: 46
|
ивент срабатывает, проверял.
Мониторить не выход, так как там таймаут стоит маленький, тоисть даже если юзер не закрое вкладку, произойдет NetGroup.Neighbor.Disconnect в опредиленный момент (не знаю почему так???) Можно конечно поизвращатся, и сделать какой-то масив и проверять по событии NetGroup.Neighbor.Connect - если pearID там нету, то значит зашел новый, но тут другая проблемма - по событии NetGroup.Neighbor.Connect я не буду знать ник-нейм этого соседа. Как бы с это выйти???? И вообще, нормальный вопрос - когда можно начинать посылать группе сообщения, после какого события??? |
|
|||||
Регистрация: Feb 2009
Сообщений: 180
|
Если ивент срабатывает, значит проблема в вашем sendMessage. При каких условиях функция работает или не работает? Вы пробовали трейсить из ивента this.userName?
|
Часовой пояс GMT +4, время: 23:09. |
|
« Предыдущая тема | Следующая тема » |
|
|