ソラマメブログ

2010年03月28日

製品アップデートサーバ

製品アップデートサーバ
 ある計画を進めていて、今まではあまり考えていなかったのですが、自動アップデートはどうしても必要だろうと考えて、自作で構築しました。

http 関連の制作は初めてなので、例によってウキウキしながら始めたのですが、原因不明の403に悩まされました。
(それとサーバに拒否されたときの処理ね。うまく行くことしか考えてなかったので)
ディレクトリサービスのプロバイダがゲーム関連のアクセスを嫌っていて、一時間か二時間おきにしか通してくれないのです。
しばらく状態を観察して諦め、他のを探しました。

外部のCGIサービスが必要な理由は、SLのオブジェクトが貰うURLはシムがリスタートすると置き換わってしまうので、製品側に固定の行き先を書き込めないからですね。外部のCGIにSLのupdate serverのURLを問い合わせに行くのです。
アップデート製品自体はSLのオブジェクトからしか送れません。(ごくごく簡易なxstreetのMagicBox「のようなもの」を作っているのだと思ったけど、外販できるほどの作り込みはしてません)
HTMLの中に書き込んで読めないかとも思ったのですが、LSLのhttprequestの仕様ではGET/PUT基本で、HTMLをそのまま読み込めるのはメディアテクスチャなので、LSLにデータを引き込めません。(うそ:メソッドなしでアクセスするとHTML文がそのまま送られてきます・・・が、書き込みできないので意味なかった。だれでもアクセスできる平文じゃセキュリティゼロだし)

で、基本的な通信ができるようになってからじっくり考えると、updateリクエストのトリガーを何にするかということが問題になりました。
装着物ならアバタのオンラインがトリガーですが、設置したまま放っておくものだとタイマーになります。タイマーが掛かったときにアバタがオンラインでない場合、特に普段インしない時間に設置してたりすると、ずーとトリガーが掛からないことになるので、一定時間後に繰り返す操作が必要になります。

製品アップデートはすぐに知らせたいけど、そんなに頻繁だと負担だから一日一回かな。思い出したように無言でサーバに確認して、なかったら無言で翌日を待つのがいいかと。
(武器とか頻繁にアップデートがありそうなものは、にぎやかに問い合わせ状況をユーザに聞かせるのがいいのかも)

Posted by あたみ at 13:33│Comments(0)スクリプト
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。