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

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

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
По умолчанию AMF, проблемы понимания технологии использования

В проекте решили использовать AMF для общения клиент-сервер.
Интересуют следующие вещи:

1) Использование, как я понял такое - просто делается writeObject. Всё?
2) Когда в сокет падают данные я получаю их по SOCKET_DATA. Может ли приключится так, что протокол TCP образно говоря даст мне 2 раза это событие? В случае с кастомным протоколом я знал его длину и ждал когда он прогрузится полностью, как поступать здесь?
3) Нужно ли делать compress перед отправкой? getSize всегда даёт 80, видимо, информация внутри массива туда не входит. Делал save через файл референс - размер у файла до компрессии и после один. Смотрел length - после компрессии больше. Не понятно...
4) Как лучше подготавливать данные? Например, мне может придти от сервера один из 4 экземпляров класса. Мне их занаследовать от 1 базового, в котором будет поле с именем класса, к которому нужно привести этот класс, но как то это по быдлятски... в общем, непонятно.
5) Чтобы по AMF без отсебятины - я должен сериализировать только один объект его и отсылать? Или не уходя от "классического амф" я могу всунуть 10 байтов текста, потом объект, а потом 3 булеана?

6) Начитался гайдов и везде используется NetConnection, но не понятно - сокетная это дрянь или нет. Серверник подсказывает что нет, и это мне совсем не нравится, хочу использовать стандартный Socket. Есть варианты?

Самое плохое что в интернете очень скудно описано AMF на клиентской стороне. Дальше hello world! непонятного качества примеры не разбираются. Буду рад хорошим ссылкам )

Спасибо.


Последний раз редактировалось Psycho Tiger; 26.09.2010 в 21:10.
Старый 26.09.2010, 22:05
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
1) Да.
2) Да. Оборачивать в свои пакеты нужно. С длиной, белкджеком и девами.
3) Оно вроде не пожато. Спецификация уточняет. Но можно свое сжатие накатить.
4) Не пользовал, потому что в протоколе очень много избыточной информации.
5) Можно все, что разрешено спецификацией. Главное, когда будешь делать readObject чтобы все было в AMF. По-моему логично.
6) Чистейший HTTP. Потому чтение происходит после COMPLETE, а не порциями по SOCKET_DATA (см. п. 2).
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 26.09.2010, 22:28
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 3  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
3) Потестили с серверником. После compress размер пакета, что к нему приходит - 65 байт, до - 54. В кастомном протоколе, выдуманном за 5 минут это можно обернуть в байтов 20, разница почти в 3 раза. Что мы неправильно делаем?

4) Какой порекомендуешь использовать вместо? Если любишь кастомные - то опиши в 2 словах суть. Я выдумал - <id><length><message> - id = команда, length длина message, но гуру посоветовали AMF. Пытаемся проникнутся )

5) Да, логично =) Просто как новенький в этой теме решил уточнить этот момент.
Не очень понял про
Цитата:
Главное, когда будешь делать readObject чтобы все было в AMF.
вроде если в блоке, где записан объект побить байты, тем самым побив AMF объект и не считается... Это памятка чтобы я не трогал то, что записано через writeObject? Не трону )

6) HTTP для игр совсем не люблю )

Спасибо!

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

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

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


 


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


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