Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 30.09.2013, 14:55
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 1  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
По умолчанию AS3 ByteArray -> AMF -> MongoDB

Здравствуйте.
Столкнулся с небольшой проблемой, хочу в базу (Mongo) записать байтарей и потом обратно вытянуть. Но что-то видимо не дочитал. Есть ли опыт у кого-то в подобном?
front-end
Код AS3:
	var lic:Object = new Object();
		lic.emei = emei.text;
		lic.sign = MD5.hash(emei.text);
		lic.desc = desc.text;
 
	var ba:ByteArray = new ByteArray();
		ba.writeObject(lic);
		ba.compress();
 
	var send:Object = new Object();
		send.lic = lic;
		send.ba = ba;
 
	AMF.call('User/licHandler', callbackHandler, send);
back-end
PHP код:
public function licHandler($data) {

        
$data Security::check($data);

// http://chimala.wordpress.com/2007/07/31/flex-20-sending-bytearray-to-amfphp/ 
        
$data['ba'] = new MongoBinData($data['ba']->data);

// пробовал и new MongoBinData($data['ba']) тогда вообще пусто

        
Security::mdb('licence')->insert($data);

        return 
config::responser($data);
    } 
Всё на первый взгляд работает, но при получении обратно ByteArray
PHP код:
 public function getLicenceList($data) {
        
Security::check($data);

        return 
config::responser(Security::mdb('licence')->find());

Код AS3:
private function licenceHandler(data:Object):void {
	trace(data);
 
 
	var byteArray:ByteArray =  data['52494f9c8bbf0eb0b8bd9c0d']['ba']['bin'];
		byteArray.uncompress();
 
	var obj:Object = byteArray.readObject();
 
	for ( var i in obj) {
		trace(i+" >> "+obj[i]);
	}
 
}
ловлю
Код:
TypeError: Error #1034: Type Coercion failed: cannot convert "xÚãâfäLI-Nfc762äLÍMÍdc742æ,ÎLÏcs420JN²43JL6µ4072M’Ì
MRŒŒM’Ì
Çɤ" to flash.utils.ByteArray.
Соответственно где-то я не дочитал.
Подскажите где может быть проблема. Может вытянув из MongoDB нужно "пересобрать" из BinData в ByteArray...
__________________
return this...

Создать новую тему   Часовой пояс GMT +4, время: 19:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.