Показать сообщение отдельно
Старый 07.10.2009, 13:50
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
вот накидал примерный алгоритм двустороннего общения с использованием вызывной "частоты".

Проще надо быть =) Зачем сервер?

Есть две флешки на одной странице.
Одна из них рассылает сообщения (sender), другая их слушает (recipient).
Обе флешки знают имя дежурного канала, на котором происходит договор о рабочих частотах.

sender подключается к каналу "callingPort"
sender.connect("callingPort");

recipient сразу после загрузки генерирует уникальное имя канала "recipient_id12345", на котором будет слушать sender'а
и подключается к нему:
recipien.connect("recipient_id12345");

Процедура handshake

recipient отправляет на канал "callingPort" сообщение "handshake" и обратный адрес-канал "recipient_id12345"
recipient.send("callingPort", "handshake", "recipient_id12345");

sender принимает сообщение, закрывает вызывной канал "callingPort"
sender.close()
Этот канал готов к очередному подключению.

sender открывает новый уникальный канал "sender_id4321", на котором будет слушать recipient'а
sender отсылает сообщение "handshake_ok" по указанному recipient'ом адресу ("recipient_id12345")
и новое уникальное имя канала ("sender_id4321") на котором он будет слушать.

sender.connect("sender_id4321");
sender.send("recipient_id12345", "handshake_ok", "sender_id4321");


recipient слушает ответ от sender на callBack-metode на наличие сообщения "handshake_ok";
В случае, если сообщение не пришло, делается очередной
recipient.send("callingPort", "handshake", "recipient_id12345");
Такое может быть, если recipient загрузился раньше sender'а.

Когда в recipient приходит "handshake_ok" от sender'а, recipient имеет имя канала, на котором слушает sender.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 07.10.2009 в 13:58.