FluorineFX rtmp 连接超时

发布于 2024-11-19 23:38:06 字数 1324 浏览 6 评论 0原文

我有用 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>

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

Koby

I have application server that I wrote in csharp. The server is communicating with Flash client built using FLEX 4 (Flash Builder 4.5).

The communication between the server and the client is done using RTMP.

For the RTMP capabilities in the server side I used the FluorineFX (hosted in IIS7).

All the connections is done using Remote procedure calls where the Flash client executes remote procedure in the server and getting the results in the RPC response callback function.

The server also can send messages to the client using RPC as well.

My problem is that the server diconnects all clients 6 minutes after the last client connected and I can't figure out why it is doing it.

The services-config.xml looks like:

<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>

The web.config contains the following configuration:

<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>

Any help solving the timouts will be appreciated

Koby

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

羁客 2024-11-26 23:38:06

问题解决了。

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

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

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

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

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

科比

Problem is solved.

It was caused due to IIS7 application pool configuration: On one of the application servers the application pool idle timeout was set to 6 minutes. so after 6 minutes without any http request to the application, the application pool unloaded all the assemblies including the Fluorine Gateway.

When the Gateway's assembly is unloaded, it stops the gateway which terminates all connections.

The way to change the application pool idle timeout is as follows:

In IIS 6: go to the Application Pools section, and right-click > Properties on the pool which hosts the ASP.NET application in question. Go to the Performance tab and uncheck "Shutdown worker processes after being idle for:"

In IIS 7:, go to the Connections pane and find Application Pools, and select Advanced Settings for the pool which hosts your application. Find the "Idle Timeout" property and set it to "0" (this disables the timeout).

Koby

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文