Показать сообщение отдельно
Старый 27.10.2013, 04:23
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 4  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Вопрос не в том что принять, а в том как прочитать.
На низком уровне сокет представлен как файл(очень грубое сравнение, но понять поможет).

Сервер в этот файл постоянно пишет.
Клиент постоянно читает.

Флеш устроен таким образом что "непрерывное чтение" оставляет на совести виртуальной машины. И выдает данные порционно в прогресс-ивенте.
Но суть от этого не меняется - это файл в который мы пишем, и из которого читаем.
Хочу заметить: это ОДИН ФАЙЛ. А не по файлу на каждое сообщение.
И на совести разработчика - как он порежет этот файл на части. По-умолчанию "\x00" - в качестве разделителя сообщений считается. Но не везде конает, так как не все серверные платформы по-умолчанию этот байт в конец дописывают и тогда надо резать месаджи самим руками.

Короче.
1. Получили прогресс-ивент с сокета. Это значит в нашем файле сокета появились новые данные и мы начали их читать.
2. Начали читать из сокета и писать в буфер.
3. Каким-то образом поняли что получили полный месадж.
4. Когда поняли что к нам пришло(обычно мы заранее знаем что к нам придет) - распарсили как-то, известным методом. Понятно что картинку и текст парсить по-разному надо.
__________________
Кто к нам с чем для чего - тот у нас того от того.