
27.10.2013, 04:23
|
|
блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
|
Вопрос не в том что принять, а в том как прочитать.
На низком уровне сокет представлен как файл(очень грубое сравнение, но понять поможет).
Сервер в этот файл постоянно пишет.
Клиент постоянно читает.
Флеш устроен таким образом что "непрерывное чтение" оставляет на совести виртуальной машины. И выдает данные порционно в прогресс-ивенте.
Но суть от этого не меняется - это файл в который мы пишем, и из которого читаем.
Хочу заметить: это ОДИН ФАЙЛ. А не по файлу на каждое сообщение.
И на совести разработчика - как он порежет этот файл на части. По-умолчанию "\x00" - в качестве разделителя сообщений считается. Но не везде конает, так как не все серверные платформы по-умолчанию этот байт в конец дописывают и тогда надо резать месаджи самим руками.
Короче.
1. Получили прогресс-ивент с сокета. Это значит в нашем файле сокета появились новые данные и мы начали их читать.
2. Начали читать из сокета и писать в буфер.
3. Каким-то образом поняли что получили полный месадж.
4. Когда поняли что к нам пришло(обычно мы заранее знаем что к нам придет) - распарсили как-то, известным методом. Понятно что картинку и текст парсить по-разному надо.
__________________
Кто к нам с чем для чего - тот у нас того от того.
|