【问题标题】:FluorineFX rtmp connection timeoutsFluorineFX rtmp 连接超时
【发布时间】:2011-07-16 22:23:57
【问题描述】:

我有我用 csharp 编写的应用程序服务器。服务器正在与使用 FLEX 4 (Flash Builder 4.5) 构建的 Flash 客户端进行通信。

服务器和客户端之间的通信是使用 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>

任何帮助解决超时问题将不胜感激

科比

【问题讨论】:

    标签: c# apache-flex iis fluorinefx


    【解决方案1】:

    问题解决了。

    这是由于 IIS7 应用程序池配置引起的:在其中一台应用程序服务器上,应用程序池空闲超时设置为 6 分钟。所以 6 分钟后,应用程序没有任何 http 请求,应用程序池卸载了包括 Fluorine 网关在内的所有程序集。

    当网关的程序集被卸载时,它会停止网关,从而终止所有连接。

    更改应用程序池空闲超时的方法如下:

    在 IIS 6 中:转到“应用程序池”部分,然后在托管相关 ASP.NET 应用程序的池上右键单击 > 属性。转到性能选项卡并取消选中“空闲后关闭工作进程:”

    在 IIS 7 中:,转到“连接”窗格并找到“应用程序池”,然后为托管您的应用程序的池选择“高级设置”。找到“空闲超时”属性并将其设置为“0”(这将禁用超时)。

    科比

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多