2014-01-08 116 views
3

我正在使用AS3和Red5 Flash Server进行流式传输。ActionScript NetStream.Publish.BadName连接丢失后出错

一切正常,直到我有问题。我不知道它的Flash服务器错误或没有!

当我关闭流连接(在发行),再其工作连接,但当我拔下我的Internet连接(用于测试),然后重新连接并刷新页面,它给了我:NetStream.Publish.BadName在事件监听。

我对它进行了搜索,发现它发生时,有一个现有的发布客户端,他们忘记关闭,然后他们尝试运行另一个。一次只有一个发布者可以使用唯一的名称。

因此,当我丢失了我的网络连接时,我的发布者名称仍在服务器中,并且我无法再使用该名称直到服务器重新启动!

这是一个僵尸流程吗? 如何关闭空闲流名称或手动关闭它们?

对不起,对英文不好。

在此先感谢

+2

看起来像这是Red5的一个已知问题:http://代码。google.com/p/red5/issues/detail?id=325 – Brian

+1

非常感谢,那我该怎么办? – Nader

回答

0

https://helpx.adobe.com/adobe-media-server/kb/prevent-netstream-publish-badname-errors.html

问题

的Flash Media Server返回NetStream.Publish.BadName消息给出版商。当与服务器的连接中断并且发布者试图重新发布实时流时发生该错误。 解决方案

配置应用程序的PublishTimeout值以允许Flash Media Server清除第一个发布连接并允许后续发布连接接管实时流。 PublishTimeout设置指定当另一客户端尝试发布到流时,服务器等待来自发布者的响应的时间(以毫秒为单位)。如果第一个发布者在此标记中指定的时间内未能响应,则服务器允许第二个发布者接管直播流。默认值是2000(或2秒),请按照下列步骤来更改它:

Edit the local or global Application.xml. The default global location is in $fms_root\conf\_defaultRoot_\_defaultVHost_.. 
Change numerical value between the Application > StreamManager > Live > PublishTimeout tags. 
Save the file and restart the application. 

注:

Disable this tag by setting the value to -1. 
For streams experiencing latency, consider increasing the PublishTimeout value. 
If your publishing client has a configurable connection timeout, set its value greater than the PublishTimeout value. 

信息

的Flash Media Server只允许一个客户发布直播到每个应用程序实例。它拒绝任何尝试发布现有直播流并将NetStream.Publish.BadName状态返回给该客户端的客户端。由于套接字API的限制,服务器可能在尝试重新发布流之前未收到原始发布者已断开连接的通知。服务器承认原始流发布者的连接并阻止对同一个流的其他发布尝试。

本作品根据知识共享署名 - 非商业性使用 - 相同方式共享3.0 Unported License Twitter™和Facebook文章未包含在知识共享条款下。

法律声明|在线隐私政策

+0

所以我必须设置超时值?我怎样才能做到这一点与AS代码? – Nader