Как упомянул Артем Тихомиров (автор вопроса) в своем собственном ответе , мой ответ бесполезен (я держу его ниже как вики для архива).
Реальный ответ дал Рик Токио относительно ошибки в Linux и задокументирован в этой теме .
Единственная причина, по которой мой ответ «выбран», заключается в том, что Артем не выбрал какой-либо другой ответ (или собственный ответ) до 7-дневного срока, предоставив мне (первый и наиболее одобренный ответ) половину баллов. (75 на 150) автоматически , как объяснено в этой записи блога SO .
Первый отрыв:
Если клиент является компонентным приложением, ему необходимо [правильно обработать события подключения] [9].
При разработке приложений имейте в виду, что использование компонентов приводит к явным событиям onConnectAccept
и onConnectReject
.
Вам нужно включить код для обработки этих событий.
При использовании компонентов необходимо изменить оператор application.onConnect
в коде на стороне сервера, включив обработчики событий application.onConnectAccept
и application.onConnectReject
.
Последняя строка (в порядке выполнения) вашего обработчика onConnect
должна быть либо application.acceptConnection()
, либо application.rejectConnection()
.
Если вашему приложению требуется дополнительный код, следуя явным методам acceptConnection()
или rejectConnection()
, таким как сообщение, указывающее, что пользователю предоставлено или отказано в разрешении для приложения, этот код следует поместить в application.onConnectAccept
или application.onConnectReject
заявления.
СОВЕТ: Если вы не используете мультимедийные компоненты, вы не можете использовать application.onConnectAccept
и application.onConnectReject
.
Затем вы можете проверить любое сообщение об ошибке на панели вывода Flash, например:
Error #2044: NetStatusEvent non pris en charge : level=error, code=NetStream.Play.Failed
at MethodInfo-1()
Error #2044: NetStatusEvent non pris en charge : level=error, code=NetStream.Record.NoAccess
at MethodInfo-1()
Это указывало бы на то, что исключение сервера не было учтено клиентом и вызвало неожиданный выход.
Если клиент читает поток с сервера, он должен убедиться:
- NetConnection успешно
- NetStreams (вход и выход) слушают NET_STATUS
Хороший код хотел бы это:
var status:Function = function( e:NetStatusEvent ):void
{
trace( "status : " + e.info.code ) ;
if ( e.info.code == "NetConnection.Connect.Success" )
{
streamOut = new NetStream( nc ) ;
streamOut.addEventListener( NetStatusEvent.NET_STATUS , status ) ;
streamIn = new NetStream( nc ) ;
streamIn.addEventListener( NetStatusEvent.NET_STATUS , status ) ;
streamOut.attachCamera( cam ) ;
video.attachNetStream( streamIn ) ;
streamOut.publish( "private" ) ;
streamIn.play( "private" ) ;
}
}
Поскольку новые версии FlashPlayer распространяют подобные исключения, их необходимо отслеживать, а затем перехватывать в клиентском приложении