Я конвертирую приложение из Flex / Fla sh в Flex / AIR. Приложение обменивается сообщениями. Я использую файл services-config. xml для определения каналов и конечных точек.
При использовании определения конечной точки в конфигурации services. xml Обычно я использую;
<channels>
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://{server.name}:{server.port}/Gateway.aspx" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<!-- <legacy-collection>true</legacy-collection> -->
</properties>
</channel-definition>
<channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel">
<endpoint uri="rtmp://{server.name}:1935" class="flex.messaging.endpoints.RTMPEndpoint"/>
</channel-definition>
</channels>
При работе в AIR это преобразуется в имя SWF-файла (как ни странно, минус первый символ). Мне нужно определить во время выполнения имя сервера.
Я пробовал следующий код в моем разделе завершения создания приложения:
RootDomain = "http://192.168.144.190/";
if (bolTestMode == false)
{
var strRTMPuri:String = RootDomain.substr(0, RootDomain.length - 1) + ":1935";
strRTMPuri = strRTMPuri.toLowerCase().replace("http:","rtmp:");
ServerConfig.getChannel("my-rtmp").uri = strRTMPuri;
ServerConfig.getChannel("my-amf").uri = RootDomain.substr(0, RootDomain.length - 1) + ":80";
}
Что, похоже, не работает.
Единственное, что действительно работает, - это изменить файл services-confg. xml на;
<channels>
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://192.168.144.190:{server.port}/Gateway.aspx" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<!-- <legacy-collection>true</legacy-collection> -->
</properties>
</channel-definition>
<channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel">
<endpoint uri="rtmp://192.168.144.190:1935" class="flex.messaging.endpoints.RTMPEndpoint"/>
</channel-definition>
</channels>
и затем скомпилировать приложение. К сожалению, это означает, что производственная версия приложения должна быть скомпилирована с другим файлом services-config. xml, полученным при тестировании.
То, что я ищу / мне нужно, - это метод определения сервера & порты во время выполнения.