【问题标题】:nc.call() closes the netconnectionnc.call() 关闭网络连接
【发布时间】:2015-02-27 01:11:34
【问题描述】:

我在 Flash Builder 4.6 上制作了一个 Flash 聊天应用程序,它连接到我的 centos5 32 位服务器上的 Flash Media (Development) Server,问题是当我在浏览器中打开它大约 2 分钟空闲,然后尝试调用网络连接获取聊天记录或发送公共消息或使用 nc.call() 方法在服务器端调用函数,它突然说 netconnection.connect.closed.. 除非我打电话,它不会给我一个 connenction.closed事件..

虽然发生这种情况,但我正在查看活动用户的 fms 管理控制台,但客户端没有掉线并且似乎仍连接到服务器..即使我关闭浏览器,客户端仍然存在于 fms 控制台中..(通常,当我关闭浏览器或使用 nc.close() 时,客户端断开连接,我看到 fms 管理控制台中的快速变化..

然后还在看 fms 管理控制台,大约 10 分钟后客户端掉线了..(我认为这很正常)

我尝试了与 localhost 连接的同一个应用程序,它运行良好,我让应用程序打开了很长时间空闲,然后尝试了 nc.call() 它运行良好.. 但是当我尝试我的服务器上的应用程序,我遇到了问题..我在我的服务器上尝试了 fms 3.5 和 4.0.3,但我也遇到了问题.. 但是在本地主机上它可以工作,所以我认为问题不在于版本,而在于某些东西与服务器的连接不同..

pepper flash 播放器也被禁用..问题不在于 server.xml、application.xml vhost.xml 配置文件中的 autocloseidleclients 属性。问题是连接有所不同,可能与防火墙、tcp、路由器等有关。我不知道,但我真的需要帮助..

感谢阅读..

【问题讨论】:

    标签: actionscript-3 flash connection flash-builder flash-media-server


    【解决方案1】:

    嗯,如果NetConnection 使用套接字工作,那么据我所知,在 Windows 上,确定套接字是否关闭的唯一方法是尝试向其写入内容;如果它失败了,那么它就被关闭了——因此call()实际上是在它空闲太久之后关闭了连接。

    当您关闭浏览器或调用 nc.close() 时,这是一个特定请求 - 通常在服务器上您还会实现类似“如果我在 X 秒内没有收到任何东西,断开套接字”之类的东西,这将触发客户端回调。

    我会实现一种保持活动状态;每 15/30 秒,向服务器发送一个简单的 ping,这将使您的连接保持打开状态。

    【讨论】:

      猜你喜欢
      • 2012-02-17
      • 2014-06-20
      • 1970-01-01
      • 2011-06-22
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      相关资源
      最近更新 更多