どっちにすべきか
ミディビのファイルの保存について考えてました。
ミディビはMIDIデータだけをバイナリのまま送りつけてるんですがそれじゃ将来的には使えなくなるんですよね。
しぃPaintBBSが送信しているデータはヘッダとデータ本体でした。
そもそも掲示板として動かすためには二重投稿の問題についても考えなくてはいけません。
そこでMIDI投稿の流れを考えてみました。
- アプレットからCGIにPOSTでデータを渡す(ただし、データは、MIDI本体のデータに加え、ユニークな識別番号と、その他必要な情報を有する)
- 最近投稿されたファイルのログに同じ識別番号がないかどうか確認し、なければ保存し、ログに識別番号を記入する
- 掲示板ログに同じ識別番号がないか確認し、なければコメント記入フォームを表示し、あれば二重投稿として処理する
- 最近投稿されたファイルのログから識別番号を削除する
- あとは普通の掲示板と同じ
さて、テキストで送るかバイナリで送るかがまた悩みどころです。
CGI側でテキストデータをバイナリにデコードするのは実はかなり容易です。
アプレット側でバイナリデータを16進文字列データにエンコードするのもそのためのOutputStreamを容易に作れます。
しかし問題は送信データが単純計算で2倍になるということです。