Archive for 2012/1/17

java netty: HTTPストリーミングのサービスを作るにはで、
ChunkedのデータをFlex(ActionScript)で、Chunk毎に受信をする方法を、再度調べてみることにしました。

というのも、StreamingConnectionHandlerというクラス内で、
チャンクデータを扱っています。

私のやり方のどこがいけなかったのかはまだわかりませんが、
ちょっとこのソースの中身を見てみても、
以下のようにデータのサイズを計算しています。

if (state == SIZE_STATE)
{
      value = chunkBuffer.readByte();
      if (value == NULL_BYTE) // Ignore the null heartbeat byte.
         continue;

      // CR indicates that we've finished reading the size.
      if (value == CR_BYTE)
      {
           dataBytesToRead = parseInt(hexChunkSize, 16);
            state = LF_STATE;
       }
       else // Hex digit.
       {
           hexChunkSize += String.fromCharCode(value);
        }

       if (chunkBuffer.bytesAvailable == 0)
           break;
}

もう一度、このソースを参考に、URLStreamで自分なりにどこが間違っているのか、確認します。

結局、URLLoaderを使っていたために、
出力も一括でいいかなと思っていたのですが、
想定していなかった、URLLoaderがtimeoutの例外イベントを発行します。
だったら、出力はChunkedで出した方がよく、
Chunkedでどうせ出すならば、やはり、ActionScriptでもどうできるのかを、
事前にリスクを洗い出しておこうと思った次第です。

また、StreamingConnectionHandlerはAMF3だけを対象にしているようですが、
Server-Sent Eventにも対応を考えれば、
汎用的なクラスを作っておいた方が良さそうだという次第です。

うまくいったら、airxlibのライブラリの一部として公開する予定です。

ソフトウェア&ライブラリ



ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
カレンダー
2012年1月
« 12月   2月 »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

カスタム検索
RSS
Add to Google
カテゴリ
にほんブログ村 IT技術ブログへ