|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2009
Сообщений: 65
|
Создание больше чем 2-х LocalConnection
Создал 2 флешки, общающихся между собой на HTML странице через LocalConnection. Для пользователя, который просмотрел страницу первым все отлично работает. Но вот для тех , кто просматривает страницу после него, начинаются косяки (типа : Connect failed because the object is already connected). Я вижу выход из ситуации следующий: Для каждого нового пользователя на странице создавать уникальное имя соединения с помощью javascript и как то через ExternalEnterface получать его флешками. Тогда они типо будут иметь разные соединения...
Правилен ли такой подход? Может быть есть другие варианты решения этой проблемы? |
|
|||||
Modus ponens
|
Вот, посмотрите, как вариант:
http://code.google.com/p/e4xu/source...idge/AVM1LC.as (АС3) http://code.google.com/p/e4xu/source...lcbridge/LC.as (АС2) Единственное, в виду секьюрити апдейта для плеера, лучше пока повременить использовать ЛК... Там чего-то учудили с ним, и оно по словам очевидцев теперь на маках не работает вообще.
__________________
Hell is the possibility of sanity |
|
|||||
.
|
Не могли бы Вы подробнее объяснить о каких пользователях идет речь и что подразумевается под "просмотром" страницы?
|
|
|||||
Регистрация: Mar 2009
Сообщений: 65
|
Просто дважды открыть страничку с флешками , общающимися между собой через LocalConnection. Вот пример: http://www.belfortex.com/goga/double...onnection.html
, откройте одновременно в нескольких страницах... |
|
|||||
listener
|
У меня "нажми" на второй странице заставляет играть "принимаю" на первой. В этом проблема? Видимо, конфликт имен соединений. Точнее, их перекрытие. Уникальные имена ожно js-ом передать, можно сгенерить на сервере и через flashvars передать, а можно написать флэшку- сервер, которая будет управлять всем этим хозяйством.
|
|
|||||
.
|
Понятно. Сделайте как принято в радиосвязи. Есть вызывная частота. На ней работать запрещено, но после ответа вызываемого можно договориться о рабочей частоте, оба абонента переходят на неё, освобождая вызывную.
|
|
|||||
Регистрация: Mar 2009
Сообщений: 65
|
Спасибо за ответ , но если заметите ,я уже писал про Js в первом своем сообщении . А вот про флешку сервер , это уже интересней...не могли бы вы дать ссылку на подобный пример ?
|
|
|||||
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
я думаю что человек имел ввиду чтоб флеш объект генерился сервером, так что бы у всех оказывались разные id
|
|
|||||
Регистрация: Mar 2009
Сообщений: 65
|
Я буду как параметр передавать в вызываемую уникальное имя нового соединения и обеими флешками переходить на другое соединение... Хотя, стоп , а имя то первого соединения у меня будет всегда одинаковое...Тогда нужно как то согласовывать обеими флехами имя первого соединения. Бррррр ... походу вариант с js- лучший...
Последний раз редактировалось Gogan; 07.10.2009 в 13:30. |
|
|||||
.
|
вот накидал примерный алгоритм двустороннего общения с использованием вызывной "частоты".
Проще надо быть =) Зачем сервер? Есть две флешки на одной странице. Одна из них рассылает сообщения (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. Последний раз редактировалось dimarik; 07.10.2009 в 13:58. |
Часовой пояс GMT +4, время: 21:05. |
|
« Предыдущая тема | Следующая тема » |
|
|