Тайм-ауты подключения rtmp FluorineFX - PullRequest
1 голос
/ 13 июля 2011

У меня есть сервер приложений, который я написал на csharp.Сервер взаимодействует с Flash-клиентом, созданным с использованием FLEX 4 (Flash Builder 4.5).

Обмен данными между сервером и клиентом осуществляется с использованием RTMP.

Для возможностей RTMP на стороне сервераЯ использовал FluorineFX (размещенный в IIS7).

Все соединения выполняются с использованием удаленных вызовов процедур, когда Flash-клиент выполняет удаленную процедуру на сервере и получает результаты в функции обратного вызова RPC-ответа.

Сервер также может отправлять сообщения клиенту, используя также RPC.

Моя проблема в том, что сервер отсоединяет всех клиентов через 6 минут после подключения последнего клиента, и я не могу понять, почему он это делает.

services-config.xml выглядит следующим образом:

<services-config>    
  <channels>        
    <channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel">
      <endpoint uri="rtmp://{server.name}:1935" class="flex.messaging.endpoints.RTMPEndpoint"/>
    </channel-definition>
  </channels>
</services-config>

Файл web.config содержит следующую конфигурацию:

<fluorinefx>
    <settings>          
      <rtmpServer>
        <threadpool minWorkerThreads="0" maxWorkerThreads="25" idleTimeout="60000"/>
        <rtmpConnection pingInterval="0" maxInactivity="60000" maxHandshakeTimeout="0"/>
        <rtmptConnection pingInterval="5000" maxInactivity="60000" maxHandshakeTimeout="5000"/>
        <rtmpTransport receiveBufferSize="4096" sendBufferSize="4096" tcpNoDelay="true"/>
  </rtmpServer>
</settings>

Любая помощь в решении тайм-аутов будет оценена

Коби

1 Ответ

1 голос
/ 16 июля 2011

Проблема решена.

Это было вызвано конфигурацией пула приложений IIS7: на одном из серверов приложений время простоя пула приложений было установлено равным 6 минутам. поэтому через 6 минут без какого-либо http-запроса к приложению пул приложений выгружал все сборки, включая Fluorine Gateway.

Когда сборка шлюза выгружается, он останавливает шлюз, который завершает все соединения.

Способ изменения времени простоя пула приложений заключается в следующем:

В IIS 6 : перейдите в раздел «Пулы приложений» и щелкните правой кнопкой мыши> Свойства в пуле, в котором находится рассматриваемое приложение ASP.NET. Перейдите на вкладку «Производительность» и снимите флажок «Завершить рабочие процессы после простоя:»

В IIS 7: перейдите на панель «Подключения» и найдите пулы приложений, а затем выберите «Дополнительные параметры» для пула, в котором размещается ваше приложение. Найдите свойство «Idle Timeout» и установите для него «0» (это отключает тайм-аут).

Коби

...