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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.07.2011, 19:19
C4Grey вне форума Посмотреть профиль Отправить личное сообщение для C4Grey Найти все сообщения от C4Grey
  № 11  
Ответить с цитированием
C4Grey

Регистрация: May 2007
Сообщений: 181
Отправить сообщение для C4Grey с помощью ICQ Отправить сообщение для C4Grey с помощью Skype™
2Vier
Большое спасибо за объяснение.
Скачал BlazeDS, посмотреть как умные люди делают, немного погуглил как с его помощью читать объекты...в итоге все упирается в тото же код:

Код:
ServerSocket servSoc = new ServerSocket(8888);
Socket s = servSoc.accept();
Amf3Output amf3Output = new Amf3Output(SerializationContext.getSerializationContext());
amf3Output.setOutputStream(s.getOutputStream());
Amf3Input amf3Input = new Amf3Input(SerializationContext.getSerializationContext());
amf3Input.setInputStream(s.getInputStream());
P.S. Правка: Сглупил немного, перепутал классы...буду разбирать BlazeDS
Теперь получаю новую ошибку:
flex.messaging.MessageException: Cannot create class of type 'DataMessage'. Type 'DataMessage' not found.
При попытке прочитать объект: amf3Input.readObject();


Последний раз редактировалось C4Grey; 05.07.2011 в 20:28.
Старый 05.07.2011, 19:21
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 12  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
C4Grey, да, довольно удобно.
Но не прижилось
время показало, что обычный JSON удобнее

ПС Помню день убил из-за бага в ФП с registerClassAlias при подгрузке модулей

Старый 05.07.2011, 23:27
C4Grey вне форума Посмотреть профиль Отправить личное сообщение для C4Grey Найти все сообщения от C4Grey
  № 13  
Ответить с цитированием
C4Grey

Регистрация: May 2007
Сообщений: 181
Отправить сообщение для C4Grey с помощью ICQ Отправить сообщение для C4Grey с помощью Skype™
Ну, теперь сервер все читает корректно...на досуге надо будет почитать исходники blazeDS, чтобы понять как они парсер написали, но пока более приземленные дела - отправка сообщений.
Увы, просто:
Код:
 amf3Output.writeObject(OutputMessage);
не проходит, клиент выдает ошибку Error #2030: End of File detected. На одном форуме подсмотрел вариант с использованием ByteArrayOutputStream, реализовал у себя:
Код:
objectOut = socket.getOutputStream();
byteBuffer= new ByteArrayOutputStream();
amf3Output.setOutputStream(byteBuffer);
amf3Output.setOutputStream(objectOut);
И отправка:
Код:
amf3Output.writeObject(OutputMessage);
objectOut.write(byteBuffer.toByteArray());
objectOut.flush();
В итоге первое сообщение читалось отлично, последующие - крякозябрами, заметил что количество байт на входе постоянно растет...добавил byteBuffer.reset();, проблема осталась, кроме того клиент выдавал ошибку Error #2006: Index Out of bound при чтении. В итоге решил таким костылем, в цикле передачи:
Код:
byteBuffer = new ByteArrayOutputStream();
amf3Output.setOutputStream(byteBuffer);
amf3Output.writeObject(OutputMessage);
objectOut.write(byteBuffer.toByteArray());
objectOut.flush();
Не знаю, насколько это коректно с точки зрения компилятора Java, но оно хотя бы работает ... если я что-то делаю неверно - поправте пожалуйста.

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

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

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


 


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


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