

スカイサーバーα版無料サービス(ASPサービス)について
以下、スカイサーバーサービスα版の使用手順をご説明いたします。
スカイサーバー無料サービス(ASPサービス)は、fenixsoftが提供するnine専用の無料サーバーを使用することで、
サーバー環境構築や、サーバープログラミングの必要なしにネットワークアプリケーションを作成することができます。
アプリケーションはFlashで作成することができ、作成したアプリケーションはWeb上の好きな場所に公開することができます。
スカイサーバーα版無料サービスを利用するには、nine ASPインターフェースとnine for Flashが必要となります。 これらを使用することで、nineサーバーを利用したネットワークアプリケーションを開発することができます。
nine ASPインターフェースとnine for Flashはこちらからダウンロードしてください。
環境設定
nine ASPインターフェースを使用するには、nine.swcとnineasp.swcをライブラリパスに追加します。
また、必要なFlash Player バージョンを 10.0.0 に指定する必要があります。
なお、nineasp.swcはlibディレクトリ以下にあり、nine.swcはnine for Flashのパッケージ内のlibディレクトリ以下にあります。
各開発環境の設定方法は以下の通りです。


パブリッシュ設定>Flash>設定>ライブラリパス にnine.swc, nineasp.swcへのパスを追加。

パブリッシュ設定>Flash>Player にFlash Player 10 を指定。
パブリッシュ設定>Flash>SWC 書き出し のチェックをオンにする。

パブリッシュ設定>Flash>ローカルでの再生に関するセキュリティにネットワークにのみ
アクセスするを指定。
プロパティ>Flex ビルドパス>ライブラリパス にnine.swc, nineasp.swcへのパスを追加。

プロパティ>Flex コンパイラ>必要なFlash Player バージョン に 10.0.0 を指定。
コマンドラインオプション -library-pathで nine.swc, nineasp.swcへのパスを指定し、 -target-player で 10.0.0 を指定します。
サーバー接続処理
1. まず、DistributionServerクラスを継承したクラスを作成します。
このクラスのオブジェクトに対しinitializeを呼び出すことでサーバー接続の初期化を行います。
initializeの引数はそれぞれ、接続先IPアドレス、ポート、認証コード、クロスドメイン用ポートを指定します。
認証コードとクロスドメイン用ポートは省略可能です。
これらの意味については後述します。
2. 定期的にDistributionServer.turnを呼ぶようにします。
これにより、実際の通信処理が行われます。
サンプルではENTER_FRAMEイベント発生時にturnを呼ぶことで、毎フレーム通信処理が行われるようにしています。
テスト方法
ローカル環境でテストを行うには、仮想サーバーを使用します。
仮想サーバーの使用方法は以下の通りです。
1. xdomaind起動
binディレクトリ以下にあるwin-xdomaind.exeを実行します。
2. 仮想サーバー起動
binディレクトリ以下にあるasp_server.exeを実行します。
3. アプリケーション実行
作成したswfファイルを実行します。
トレースに"success: connect to localhost:20000"のようなログが出れば接続成功です。
"fault: connect to localhost:20000"と表示された場合はasp_server.exeが起動していないか、接続先が間違っている可能性があります。
"エラー : ポリシーファイルを xmlsocket://localhost:843 から読み込めませんでした"と表示された場合は、xdomaindが起動していない可能性があります。
メッセージ送信
サーバーを介して他のクライアントに通信を行う際には、メッセージという、データと通信用バッファのやりとりをするクラスを使用します。
メッセージの作成方法については、nine for Flashドキュメントのメッセージ型通信チュートリアルを参照してください。
なお、kindの0と15はライブラリで予約されているため使用できませんので注意してください。
メッセージを他のクライアントに送信するには、post系メソッドを使用します。
post系メソッドには以下の3種類があります。
メッセージ受信
メッセージを受信すると、handleMessageメソッドが呼ばれます。
受信処理を行う場合には、このメソッドをオーバーライドして実装を行います。
メッセージにはIDがついているので、このIDがどのメッセージクラスのIDか判定して、
そのメッセージに従った処理を行ってください。
オブジェクト共有
オブジェクト共有機能を使用すると、あるクライアントでオブジェクトのデータを変更した際に、
他のクライアントにあるオブジェクトのデータも同じ値に更新することができます。
これにより、ネットワーク経由で同一のオブジェクトを操作することができます。
また、サーバーにもオブジェクトが保存されるため、後から接続したクライアントにもデータを共有したり、
通信の切断後もオブジェクトを残しておくこともできます。
オブジェクト共有機能を使用するには、共有したいオブジェクトのクラスを
NetworkObjectクラスを子クラスとして定義します。
このクラスでTYPE_ID定数を定義しておき、
コンストラクタでsuper(TYPE_ID)を呼び出します。
TYPE_IDには、他のNetworkObjectクラスで使用していない、一意な数値にする必要があります。
共有したいデータ変数は、Property系クラスの変数として定義します。
Property系クラスにはIntProperty, UIntProperty, NumberProperty, StringPropertyがあり、
それぞれ符号あり整数、符号なし整数、浮動小数点数、文字列のデータ共有を行います。
これらの変数に対し、コンストラクタでaddPropertyを呼び出し、プロパティの追加を行います。
オブジェクトを共有するには、DistributionServer.addObjectを使用します。
共有されたオブジェクトはobjectsプロパティから取得することができます。
nineサーバーを使用してWeb上で公開するには、ユーザー登録が必要となります。
まだ登録を行っていない場合は、network-effect.comからユーザー登録を行ってください。
次に、アプリ登録を行います。
アプリ登録を行うと、使用ポートと認証コードが発行されます。
ポートは接続先となるポート番号であり、認証コードはアプリごとに異なるチェック用コードです。
この2つが正しく設定されていないと公開サーバーには接続できません。
登録が済んでいる場合は、DistributionServer.initializeに渡す引数を以下のように設定することで、
公開サーバーに接続することができます。
第1引数 接続先IP
"nine-skyserver.com" にする
第2引数 ポート
登録されたポートにする
第3引数 認証コード
登録された認証コードにする
第4引数 クロスドメインポート
9999にする
この設定でパブリッシュを行います。
完成したSWFファイルは、Web上の自分のページにアップロードすることができます。
仮想サーバーは設定ファイルを書きかえることで設定を変更することができます。
設定ファイルはasp_server.confをテキストエディタで開いて編集できます。
各設定項目は以下の通りです。
port 使用ポート
authcode 認証コード
これらは設定は任意に変更できますが、クライアントの接続設定と一致している必要があるため、
公開設定と同じにしておくのを推奨します。
nineに関するお問い合わせはこちらのアドレスまでご連絡ください。