你知道是否真的可以断开rtmpconnection以及如何断开连接? 官方文档中没有“disconnect”方法,rtmpconnection.lzx也没有。因此,如果您知道断开rtmp连接的方法,请告诉我。提前谢谢。
答案 0 :(得分:1)
<rtmpconnection> class in OpenLaszlo使用ActionScript 3 NetConnection clas连接到服务器。 NetConnection类有一个method close(),以下是文档:
关闭在本地或服务器上打开的连接 调度具有代码属性的netStatus事件 值为NetConnection.Connect.Closed。
此方法断开在。上运行的所有NetStream对象 连接。任何尚未发送的排队数据都将被丢弃。 (至 在不关闭连接的情况下终止本地或服务器流,请使用 NetStream.close()。)如果你关闭连接然后想要 创建一个新的,您必须创建一个新的NetConnection对象并调用 再次使用connect()方法。
close()方法还会断开所有正在运行的远程共享对象 通过这种联系。但是,您无需重新创建共享 要重新连接的对象。相反,你可以只调用SharedObject.connect() 重新建立与共享对象的连接。此外,任何数据 您发出时排队的共享对象 重新建立连接后发送NetConnection.close() 共享对象。
使用Flash Media Server,最好的开发实践是调用 当客户端不再需要与服务器的连接时,close()。 调用close()是清除未使用连接的最快方法。您 可以将服务器配置为自动关闭空闲连接 备份措施。
在&lt; rtmpconnection&gt;的LZX源代码中我可以看到NetConnection.close()仅在连接失败的情况下被调用:
<!--- Handle connection failure, attempt to reconnect using altsrc
@keywords private -->
<method name="_handleConnectionFailure" args="msg"><![CDATA[
this._nc.close();
if (this.debug) {
if ($debug) Debug.warn("error connecting to", this._connecturl, ":", msg);
}
....
我不知道为什么在&lt; rtmpconnection&gt;上没有定义关闭方法。 class,但你可以通过扩展&lt; rtmpconnection&gt;为自己添加代码。并添加一个close方法。只需确保正确处理状态变量。
由于我很长时间没有使用过Red5,我无法告诉你Red5是否会自动关闭空闲的NetConnections。