Flex 3.4 и FMS 3.5.1 - проблема отправки ByteArray по вызову RTMP - PullRequest
1 голос
/ 27 августа 2010

Я установил FMS 3.5 на свою машину и создал новое приложение с main.asc следующим образом:

    application.onAppStart = function()
{
    /* Allow debugging */
    this.allowDebug = true;
}

//Client is connected
application.onConnect = function( client )
{

    //Accept the connection
    application.acceptConnection( client );

    client.allo = function(o) {
        trace("test : " + o ) ; 
        trace("length : " + o.length ) ; 
        trace("objectEncoding : " + o.objectEncoding ) ; 
        return o ;
    }

}

//Client disconnected
application.onDisconnect = function( client )
{
    //Trace on the FMS Application console
    trace( client+" is disconnected" );
}

Этот код подготавливает функцию, которую я вызываю с помощью своего приложения Flex, с именем "allo", и он возвращает тот же самый byteArray в ответ.

гибкий код:

var anotherArray:ByteArray = new ByteArray();
                anotherArray.objectEncoding = ObjectEncoding.AMF3;
                anotherArray.writeObject(new String("foo"));
                nconn.call(func, echoResponder, anotherArray);

В результате я получаю пустой ByteArray только с параметрами length, encoding, endian и position. А трассировка tcpdump показывает, что ByteArray пуст.

Поэтому мне интересно, отправляется ли только указатель, или, может быть, я что-то неправильно настроил.

Вы знаете способ дальнейшего исследования или решения этого?

Спасибо за любую помощь,


MP

1 Ответ

0 голосов
/ 13 мая 2011

Я попробовал ваш код.

Отправка ...

var bytes:ByteArray = new ByteArray();                      
bytes.objectEncoding = ObjectEncoding.AMF3;                 
bytes.writeObject(new String("foo"));                       
nc.call("allo", new Responder(_onResult, _onStatus), bytes);

... и получение ...

private function _onResult(result:*):void        
{
    var bytes:ByteArray = ByteArray(result);     
    var str:String = String(bytes.readObject()); 
    trace(str);                                  
}

трасс foo

Я думаю, что ваш код в порядке.Разница лишь в том, что я использую FMS 4.

...