Как локальные соединения в AS3 общаются? - PullRequest
2 голосов
/ 23 октября 2009

Я собираюсь начать использовать LocalConnections в паре SWF, чтобы они могли общаться друг с другом. Но прежде чем идти по этому пути, я должен убедиться, что он не вызовет всплывающих окон и диалогов подтверждения из системы.

Если я использую локальный сервер сокетов, это приводит к тому, что брандмауэр Windows и многие другие помечают его и требуют подтверждения. Поэтому, если LocalConnection использует сокеты, я не могу его использовать.

Но я через какой-то веб-поиск прочитал, что он на самом деле работает с использованием общей памяти, что не вызывает жалоб на брандмауэры.

Может ли кто-нибудь, кто использовал LocalConnection, подтвердить или опровергнуть, что это вызывает проблемы с операционной системой хоста? Особенно с Win7 / Vista.

Ответы [ 3 ]

2 голосов
/ 23 октября 2009

Я давно пользуюсь LocalConnection (для просмотра сообщений трассировки SWF-файлов, размещенных на моем сервере) и никогда не видел всплывающих окон. Страница liveDocs из LocalConnection говорит, что:

Объекты LocalConnection, созданные в ActionScript 3.0, могут взаимодействовать с объектами LocalConnection, созданными в ActionScript 1.0 или 2.0. Обратное также верно. Flash Player автоматически обрабатывает эту связь между объектами LocalConnection разных версий.

Так что, я полагаю, можно предположить, что флеш-плеер отвечает за связь между SWF-файлами, использующими LocalConnection, и никакие всплывающие окна не будут задействованы.

1 голос
/ 06 ноября 2009

Я использовал LocalConnection в среде с довольно обширным тестированием качества. В этом есть несколько странных моментов, но в целом он работает надежно, без последствий для пользователей, на различных платформах.

Из странностей: одна проблема, с которой мы столкнулись, заключалась в том, что файл памяти и мьютекс не освобождались до тех пор, пока все экземпляры флэш-плеера на компьютере не были закрыты. Это проблема в случае, когда один из экземпляров флэш-плеера умер или был убит и не выпустил LocalConnection. Арбитр, который может передавать flashvars, сообщая каждому SWF, какие локальные соединения использовать во время выполнения, позволяет каждый раз указывать новое локальное соединение. Конечно, если это часто случается, это усугубляет проблему, заполняя память ...

Другая проблема заключается в том, что кажется (просто из наблюдения - нет доказательств, подтверждающих утверждение), что реализация мьютекса может быть несколько наивной. Добавление слишком большого числа слушателей / отправителей к одному локальному соединению несколько ненадежно. Мы избежали проблем с этим, просто используя LocalConnections в качестве односторонней отправки, одного отправителя, одного получателя. Эта проблема хорошо описана здесь

1 голос
/ 23 октября 2009

Я нашел эту ссылку , которая доказывает, что LocalConnections работает с общей памятью, синхронизированной с мьютексом.

Но он немного староват (2007), и в настоящее время я работаю с проигрывателем Flash 10, использующим AS3.

...