Мне нужно иметь возможность обмениваться данными между двумя приложениями, которые находятся на одном компьютере. Один использует Flex, а другой — C++. Я хотел бы иметь возможность вызывать функции и передавать аргументы друг другу. Как лучше всего общаться между ними? Я думал об использовании сокетов.
Связь между приложениями AIR(Flex) и C++
Ответы (2)
На данный момент да, вам нужно будет использовать сокеты.
AIR 2.0 предоставит доступ к собственным процессам, но для этого потребуется собственный (для каждой ОС) установщик. Дополнительная информация: http://www.mikechambers.com/blog/2009/09/22/fotb-slides-advanced-desktop-development-with-adobe-air/
Что касается AIR 1.x, Майк Чемберс опубликовал образец библиотеки под названием CommandProxy, который делает свое дело. Он предоставляет код для AS3 и .NET, который можно легко перенести на C++, если у вас есть достойный синтаксический анализатор XML.
Основная идея состоит в том, что каждый компонент может отправлять друг другу XML-пакеты по сети, где каждый из них имеет идентификатор, чтобы гарантировать, что запрос/ответ может быть связан вместе. Однако и код AS3, и код .NET не учитывают медленные или высокие скорости TCP/IP, когда два фрагмента XML могут быть отправлены в одном пакете или один фрагмент XML может быть разделен на два. В любом случае, это делает свое дело.
Кроме того, вы можете найти библиотеку C++ AMF (формат сообщений ActionScript), чтобы вы могли сериализовать объекты AS3 по сети, что имело бы более «интегрированный» вид.