>> Home
  + Past histories
  + Links

>> download

>> documents
  + Archtecrure Guide
  + Configuration
  + Tutorial
  + API Guide
  + Seasar Service

>> samples
  + Naval Battle
  + Chat

>> BBS
  + geoboard
    (旧掲示板)

>> Mail To Amoi
Home > documents > Tutorial > Chapter 6
チュートリアル
第6章 SockletService.asを使用したクライアント
 この章では、第5章で作成したマルチルームチャットSockletに接続するための、Flashクライアントを作成します。Sockletに接続するためには、Socklet接続ユーティリティクラススクリプトSockletService.asを使用します。まずはこれをダウンロードしてください。
 では、FlashMXを立ち上げ、新しいムービーを準備しましょう。Flashムービーの作成方法やActionScriptについてはここでは解説しませんのでご注意ください。
SockletService.asをインポートし、SockletServiceインスタンスを作成する
 まずはSockletService.asをインポートしてください。次に、サーバ名、ポートなどを指定して、SockletServiceクラスのインスタンスを作成します。このインスタンスのgetSockletメソッドを呼び出せば、gpssに接続に行き、初期コマンドを発行するところまで、自動的に行なってくれます。
 getSockletメソッドを呼び出す前に、SockletServiceインスタンスの初期設定を行ないましょう。必ず設定しなくてはいけない項目は以下の通りです。
  1. サーバ名 - コンストラクタ
  2. ポート番号 - コンストラクタ
  3. データ受信方式 - コンストラクタ
  4. データ送信方式 - コンストラクタ
  5. 接続成功イベントハンドラ - connectionSuccessfully
  6. 接続失敗イベントハンドラ - connectionFailure
 また、以下の設定については任意ですが、必要があれば設定しましょう。
  1. ユーザ名 - usernameプロパティ
  2. パスワード - passwordプロパティ
  3. 初期化パラメータの追加 - addInitParamメソッド
 これらは、gpssへ送られる接続用初期コマンドへ設定されます。第5章で作成したSockletでは、ユーザー名と初期化パラメータを使用しますので、これらを適切に設定します。SockletServiceインスタンスの初期設定が完了したら、getSockletメソッドを使用し、gpssへ接続します。

リスト6.1
 1: System.useCodepage = true;
 2: 
 3: #include "SockletService.as"
 4: 
 5: service = new SockletService("localhost", 9090, "xml", "plain");
 6:
 7: service.connectionFailure = function(status){
 8: 	if(status == 0){
 9: 		trace("connection failure...");
10: 		gotoAndStop(3);
11: 	}else{
12: 		trace("login failure...");
13: 		gotoAndStop(4);
14: 	}
15: }
16: 
17: service.connectionSuccessfully = function(){
18: 	trace("login successfully! ");
19: 	this.onReceive = _root.receiveMessage;
20: 	_root.tfMainChat = "";
21: 	gotoAndStop(5);
22: }
23:
24: stop();
25:
26: function receiveMessage(receive){
27: 	_root.tfMainChat += receive + "\n";
28: }

リスト6.2
 1: on (release) {
 2: 	service.username = _root.tfUsername;
 3: 	service.addInitParam("room", _root.tfRoomid);
 4: 
 5: 	service.getSocklet("chap6");
 6: }

 リスト6.1が1フレーム目に書かれたスクリプト、リスト6.2が1フレーム目においてあるログインボタンに書かれたスクリプトです。このムービーでは、以下のような配置になっています。
SockletServiceコンストラクタ
connectionFailureイベントハンドラ
connectionSuccessfullyイベントハンドラ
usernameプロパティ
addInitParamメソッド
getSockletメソッド